Coder Social home page Coder Social logo

Comments (6)

gregg-miskelly avatar gregg-miskelly commented on May 19, 2024

"FILETIME" is a class, but why there is a "_" before FILETIME.

Because, in the Windows SDK, FILETIME is a typedef. So one needs to use the name of the struct -- _FILETIME.

From minwindef.h:

typedef struct _FILETIME {
    DWORD dwLowDateTime;
    DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on May 19, 2024

2.VisualizerId is generate by ourself, so can i regenerate it and replace it in CppCustomVisualizer.natvis and CppCustomVisualizer.vsdconfigxml? I replaced it and the project can not work correctlly.

The .natvis and the .vsdconfigxml files need to agree on the value. So if you update it in one place, you need to update it in the other.

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on May 19, 2024

If I want to add a new type "Struct A{ int a1; int b1;} and show a1 in debug window" ,How to modify the CppCustomVisualizer.natvis and CppCustomVisualizer.vsdconfigxml? if i add a Implements tag,the project will build failed ">CppCustomVisualizer.vsdconfigxml(44,8): error XAC1000:"

I am not sure if I understand your question. Your .natvis file is what associates a type name with a visualizer id. If you are trying to make one dll that visualizers multiple types, there are many ways to do this:

  • I believe you could associate multiple types with the same visualizer id
  • You can definitely declare one class that supports multiple visualizer ids with <VisualizerId RequiredValue="<guid-1>"/> <VisualizerId RequiredValue="<guid-2>"/> in your Filter.
  • You can declare multiple classes in one dll

from concordextensibilitysamples.

jerishC avatar jerishC commented on May 19, 2024

thanks, it seems there are some problems in my vs2019 enviroment, I change to vs2022.

then, I add a new type with same id and it works fine(watch a tagRECT type can call my CCppCustomVisualizerService func)

  <Type Name="_FILETIME">
    <!--NOTE: The 'VisualizerId' is also specified in the .vsdconfigxml to control which
    implementation of IDkmCustomVisualizer is used.-->
    <CustomVisualizer VisualizerId="8E723FD7-611E-40E7-98C0-624D8873F559"/>
  </Type>

  <Type Name="tagRECT">
    <!--NOTE: The 'VisualizerId' is also specified in the .vsdconfigxml to control which
    implementation of IDkmCustomVisualizer is used.-->
    <CustomVisualizer VisualizerId="8E723FD7-611E-40E7-98C0-624D8873F559"/>
  </Type>

howerver, if i add a new one like this, it did not work (GUID is created from "Tools-> Create GUID")

//CppCustomVisualizer.natvis
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

  <Type Name="_FILETIME">
    <!--NOTE: The 'VisualizerId' is also specified in the .vsdconfigxml to control which
    implementation of IDkmCustomVisualizer is used.-->
    <CustomVisualizer VisualizerId="8E723FD7-611E-40E7-98C0-624D8873F559"/>
  </Type>

  <Type Name="tagRECT">
    <!--NOTE: The 'VisualizerId' is also specified in the .vsdconfigxml to control which
    implementation of IDkmCustomVisualizer is used.-->
    <CustomVisualizer VisualizerId="28331DB7-43B1-470C-922E-023C72C59A07"/>
  </Type>
  
</AutoVisualizer>

//CppCustomVisualizer.vsdconfigxml
      <Implements>
        <InterfaceGroup>
          <Filter>
            <!--NOTE: This VisualizerId is also used in the .natvis file.-->
            <VisualizerId RequiredValue="8E723FD7-611E-40E7-98C0-624D8873F559"/>
            <VisualizerId RequiredValue="28331DB7-43B1-470C-922E-023C72C59A07"/>
          </Filter>
          <Interface Name="IDkmCustomVisualizer"/>
        </InterfaceGroup>
      </Implements>

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on May 19, 2024

What do you see in the logs when you evaluate an expression that results in a successful evaluation of one of those types? Logging info: https://github.com/Microsoft/ConcordExtensibilitySamples/wiki/Getting-troubleshooting-logs

from concordextensibilitysamples.

jerishC avatar jerishC commented on May 19, 2024

thanks,it finally works

from concordextensibilitysamples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.