prti1516用哪版的vs开发,prti1516e可否用vs2010网站开发教程开发?

Qt是神马东西?
Qt – 一个跨平台应用程序和UI开发框架
它包括跨平台类库、集成开发工具和跨平台 IDE。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
Qt 主要是由
开发和维护的。Qt通过开源授权(和 )以及的方式对 Qt 进行授权。在Linux下Qt可是大名鼎鼎,Linux的KDE图形界面就是基于Qt开发的。
Qt的最大好处是跨平台,可以看到上图,Qt可以支持windows,Mac os,linux,embedded linux, wince/mobile,symbian,诺基亚最新的Megoo那也是不在话下了,由于公司最近有些项目要求跨平台的支持,原来的GIS引擎是基于Windows开发的,虽然没有用MFC,但是由于绘图引擎这块使用的GDI+,所以跨平台是非常困难的。所以为了支持跨平台以及在可预见的将来的跨平台的需求,决定将绘图引擎这块在Qt的基础上进行重构,并使用Qt开发一套基于QtGis引擎的地图项目管理应用程序。
我在博客中将会同步将开发这个应用程序的步骤展示出来,希望能通过这个系列的博客,来展示Qt开发应用程序的便利性以及展示我们公司GIS引擎的强大能力。应用程序的源代码将会同步放在每篇教程内提供下载。Gis引擎将通过提供SDK的方式方便大家学习及开发。
第一篇. 配置Qt的windows开发环境,并通过VS2010进行开发。
1. 下载Qt的安装包和VS2010的Qt插件,大家可以到下面的地址进行下载(下面的下载都是基于Windows的,如果是其他环境的操作系统可以到下载).
VS2010开发插件:
2. 安装Qt SDK
安装其实很简单了,基本上一路回车即可,主要是要注意下Qt的安装路径最好安装在全英文路径而且中间没有空格, 安装好后,可以运行开始菜单里面的Qt Demo,直观感受下Qt的强大功能!
界面非常炫酷
3. 安装Qt的VS开发插件
同安装Qt SDK一样,一路上回车即可,安装后在VS2010上新增一菜单Qt,如图所示
Qt默认使用mingw进行编译,如果要使用VS2010开发,需要将Qt重新编译。
进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里面必须是使用Visual Studio Command Prompt (2010),不能使用CMD的Dos窗口
进入Qt的安装目录后,执行CD Qt,进入Qt的根目录
运行命令 configure -platform win32-msvc2010,o(选择opensource模式)回车,Y(同意license)回车
接着就会自动配置Qt的编译环境,等配置结束后,运行nmake,回车,Qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上,大家可以在晚上睡觉的时候进行编译。
5.配置VS2010的Qt开发环境(VS2010最好是英文版本,Qt对VS2010中文版本可能支持的不好)
等Qt编译好后就可以配置VS2010的开发环境了,进入VS2010,选择Qt菜单,Qt Option,进入下图界面
点击Add,添加Qt的安装目录,并取名字,我这里使用Qt的发现版本最为名称,选择OK后即可。
6.新建或者导入Qt项目
可以通过在VS2010新建一个Qt项目
导入Qt的Pro项目
Pro是Qt自带编译器Qt Creator的项目工程文件,如果想使用VS2010开发则需要将原有项目的Pro导入到VS2010的项目文件中,可以使用菜单Qt-Open
这样我们的Qt开发环境就搭建好了,大家可以将Qt目录下的Example和Demo下的例子的运行看一遍,体验下Qt的强大和便捷,Enjoy!
Views(...) Comments()如果想用vs2010 ,c#开发的话,mapxtreme应该用什么版本_百度知道
如果想用vs2010 ,c#开发的话,mapxtreme应该用什么版本
提问者采纳
MapXtreme 是最新的版本了,可以用在vs2010下。
其他类似问题
您可能关注的推广
mapxtreme的相关知识
按默认排序
其他2条回答
MapInfo MapXtreme v7.0
可以用最新的7.0,或者早期的6.7,6.8都可以。可以动态加载控件,无法直接将控件拖到窗体上。MapControl map = new MapControl();this.Controls.Add(map);map.Dock = DockStyle.Fmap.Map.Load(new MapTableLoader(@&c:\filename.TAB&));
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1.安装vs2010
  首先您需要安装vs2010,并且选择安装其中的Silverlight组件。
  我是在虚拟机win2003上安装的vs2010最终版,选择的是完全安装。但在调试Silverlight时,浏览器并不能显示。
2.安装Silverlight_Developer.exe
  一般机器在浏览器上运行Silverlight时,浏览器会提示您安装silverlight.exe。我在调试的时候却怎么都装不上,开始我以为是虚拟机没联网,但后来发现麻烦不止这些。浏览器报错:无法下载silverlight的应用程序,请查看web服务设置。到网上查一下找到如下解决方法:
1.在iis中加入两个新的MIME的类型
.xaml application/xaml+xml .xap application/x-silverlight-app
2.降低浏览器安全设置
3.可能与vs2008或Silverlight4冲突
  浏览器设置终于弄好了,但vs2010又开始出问题了。说page中的元素丢失,弄了一天也没解决这个问题。又报错:
后来想到这个虚拟机中装了vs2008及Silverlight1,好像装完vs2010后有装过Silverlight4。。。太纠结了,估计版本间有冲突吧。只好重装个虚拟机,重装vs2010。。。
4.终于可以运行silverlight
  弄了近2天,终于解决问题了,估计不会有人会像我一样纠结了。。。我也没想到学习之前就遇到这么多麻烦事,这也是我想将此学习笔记分享的原因之一。作为菜鸟,真的不容易啊。
阅读(...) 评论()评论-2644&
trackbacks-0
&&& GacUI到了撰写文档的时候了。虽然GacUI本身的功能还没有全部完成,但是发布一个alpha版还是可以的。因此GacUI需要一份文档。自从.net语言支持XML注释生成文档之后,Visual Studio的本地C++也支持使用XML注释了。只要打开了[工程属性 -& C/C++ -& Output Files -& Generate XML Documentation Files]之后,Visual Studio会在编译本地C++工程之后,将所有的XML注释收集起来,放在和可执行文件同一个目录下的&ProjectName.xml&里面。然后我就尝试bing了一下有没有从C++的XML文档生成可读文档的工具,结果发现只有.net才支持。&&& 后来我稍微研究了一下(详细内容将会在下一篇博客透露),发现之所以没人写这个工具,是因为只有.net的可执行文件才包含足够多的元数据,而且这些元数据是必须的,否则无法生成一个完整的文档。举个例子,虽然&ProjectName.xml&包含了xml注释和该注释所在的符号,但是却没有包含该符号的结构信息。结果你试图生成一个函数的文档的时候,发现你获取不到它的返回类型!不过这也是情有可原的,因为本地C++程序根本就没有元数据。&&& 由此我联想到了之前写程序读pdb的时候的一些内容,我想到pdb生成的那份xml显然是可以当成元数据的。而且我找到了一个方法,让你在使用Visual Studio2010的PDB API msdia100.dll的时候,可以不需要安装Visual Studio 2010了。下面就来介绍PDB Dumper的代码。&&& 首先是main函数。main函数做的工作跟说的一样,当然还是要创建一个IDiaSymbol的COM对象。一般来说,COM对象是需要被注册到windows里面(基本上都在注册表里)才能使用CoCreateInstance来创建。但是后来我发现msdia100.dll十分良心,还提供了一个NoRegCoCreate函数,可以在你只有msdia100.dll但却没有注册它的COM对象的情况下创建该对象:
#include&&Windows.h&#include&&iostream&#include&&string&#include&"dia2.h"#include&"diacreate.h"#pragma&comment(lib,&"diaguids.lib")namespace&dumppdb{&&&&extern&void&DumpPdbToXml(IDiaSymbol*&exeSymbol,&const&wchar_t*&xml);}IDiaSymbol*&CreateDiaSymbol(const&wchar_t*&pdbPath){&&&&IDiaDataSource*&pSource=<span style="color: #;&&&&IDiaSession*&pSession=<span style="color: #;&&&&IDiaSymbol*&pSymbol=<span style="color: #;&&&&CoInitialize(NULL);&&&&//HRESULT&hr&=&CoCreateInstance(&&&&//&&&&CLSID_DiaSource,&&&&//&&&&NULL,&&&&//&&&&CLSCTX_INPROC_SERVER,&&&&//&&&&IID_IDiaDataSource,&&&&//&&&&(void**)&&pSource&&&&//&&&&);&&&&HRESULT&hr&=&NoRegCoCreate(&&&&&&&&L"msdia100.dll",&&&&&&&&CLSID_DiaSource,&&&&&&&&IID_IDiaDataSource,&&&&&&&&(void**)&&pSource&&&&&&&&);&&&&if(SUCCEEDED(hr))&&&&if(SUCCEEDED(pSource-&loadDataFromPdb(pdbPath)))&&&&if(SUCCEEDED(pSource-&openSession(&pSession)))&&&&if(SUCCEEDED(pSession-&get_globalScope(&pSymbol)))&&&&{&&&&&&&&return&pS&&&&}&&&&return&<span style="color: #;}int&wmain(int&argc,&wchar_t*&argv[]){&&&&if(argc==<span style="color: #)&&&&{&&&&&&&&std::wcout&&L"importing&"&&argv[<span style="color: #]&&std::&&&&&&&&IDiaSymbol*&exeSymbol=CreateDiaSymbol(argv[<span style="color: #]);&&&&&&&&if(exeSymbol)&&&&&&&&{&&&&&&&&&&&&std::wcout&&L"exporting&"&&argv[<span style="color: #]&&std::&&&&&&&&&&&&dumppdb::DumpPdbToXml(exeSymbol,&argv[<span style="color: #]);&&&&&&&&&&&&std::wcout&&L"exported&"&&argv[<span style="color: #]&&std::&&&&&&&&}&&&&&&&&else&&&&&&&&{&&&&&&&&&&&&std::wcout&&L"Failed&to&read&pdb("&&argv[<span style="color: #]&&L")"&&std::&&&&&&&&}&&&&}&&&&else&&&&{&&&&&&&&std::wcout&&L"Pdb2Xml.exe&&pdb-path&&&xml-path&"&&std::&&&&}&&&&return&<span style="color: #;}&&& 这里的dia2.h、diacreate.h、diaguids.lib和msdia100.dll都可以在C:\Program Files (x86)\Microsoft Visual Studio 10.0\DIA SDK下找到。我们需要做的就是将这些文件都复制到我们的工程目录下面。至于如何读取IDiaSymbol的内容,各位就自己查MSDN了。下面贴出我使用IDiaSymbol将PDB的关键内容输出成xml的函数,也就是上面的代码提到的DumpPdbToXml函数了:
#include&"Dia2.h"#include&"..\..\..\..\..\Library\Stream\Accessor.h"#include&"..\..\..\..\..\Library\Stream\CharFormat.h"#include&"..\..\..\..\..\Library\Stream\FileStream.h"#include&"..\..\..\..\..\Library\Stream\CacheStream.h"#include&"..\..\..\..\..\Library\Collections\Dictionary.h"using&namespace&using&namespace&vl::using&namespace&vl::namespace&dumppdb{&&&&//--------------------------------------------------------------------&&&&void&PrintString(TextWriter&&file,&const&wchar_t*&text,&int&len=-<span style="color: #)&&&&{&&&&&&&&if(len==-<span style="color: #)&len=(int)wcslen(text);&&&&&&&&file.WriteString(text,&len);&&&&}&&&&void&PrintSpaces(TextWriter&&file,&int&level)&&&&{&&&&&&&&for(int&i=<span style="color: #;i&i++)&PrintString(file,&L"&&");&&&&}&&&&void&PrintEscapedName(TextWriter&&file,&const&wchar_t*&name)&&&&{&&&&&&&&const&wchar_t*&head=&&&&&&&&const&wchar_t*&reading=&&&&&&&&while(*reading)&&&&&&&&{&&&&&&&&&&&&switch(*reading)&&&&&&&&&&&&{&&&&&&&&&&&&case&L'&':&&&&&&&&&&&&&&&&PrintString(file,&head,&reading-head);&&&&&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&&&&&head=reading+<span style="color: #;&&&&&&&&&&&&&&&&reading=&&&&&&&&&&&&&&&&break;&&&&&&&&&&&&case&L'&':&&&&&&&&&&&&&&&&PrintString(file,&head,&reading-head);&&&&&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&&&&&head=reading+<span style="color: #;&&&&&&&&&&&&&&&&reading=&&&&&&&&&&&&&&&&break;&&&&&&&&&&&&case&L'&':&&&&&&&&&&&&&&&&PrintString(file,&head,&reading-head);&&&&&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&&&&&head=reading+<span style="color: #;&&&&&&&&&&&&&&&&reading=&&&&&&&&&&&&&&&&break;&&&&&&&&&&&&case&L'\"':&&&&&&&&&&&&&&&&PrintString(file,&head,&reading-head);&&&&&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&&&&&head=reading+<span style="color: #;&&&&&&&&&&&&&&&&reading=&&&&&&&&&&&&&&&&break;&&&&&&&&&&&&default:&&&&&&&&&&&&&&&&reading++;&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&PrintString(file,&head,&reading-head);&&&&}&&&&void&PrintXMLOpen(&&&&&&&&TextWriter&&file,&int&level,&const&wchar_t*&tagName,&const&wchar_t*&symbolName&&&&&&&&,const&wchar_t*&a1=<span style="color: #,&const&wchar_t*&v1=<span style="color: #&&&&&&&&,const&wchar_t*&a2=<span style="color: #,&const&wchar_t*&v2=<span style="color: #&&&&&&&&,const&wchar_t*&a3=<span style="color: #,&const&wchar_t*&v3=<span style="color: #&&&&&&&&)&&&&{&&&&&&&&PrintSpaces(file,&level);&&&&&&&&PrintString(file,&L"&");&&&&&&&&PrintString(file,&tagName);&&&&&&&&if(symbolName)&&&&&&&&{&&&&&&&&&&&&PrintString(file,&L"&name=\"");&&&&&&&&&&&&PrintEscapedName(file,&symbolName);&&&&&&&&&&&&PrintString(file,&L"\"");&&&&&&&&}&&&&&&&&if(a1)&&&&&&&&{&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&PrintString(file,&a1);&&&&&&&&&&&&PrintString(file,&L"=\"");&&&&&&&&&&&&PrintEscapedName(file,&v1);&&&&&&&&&&&&PrintString(file,&L"\"");&&&&&&&&}&&&&&&&&if(a2)&&&&&&&&{&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&PrintString(file,&a2);&&&&&&&&&&&&PrintString(file,&L"=\"");&&&&&&&&&&&&PrintEscapedName(file,&v2);&&&&&&&&&&&&PrintString(file,&L"\"");&&&&&&&&}&&&&&&&&if(a3)&&&&&&&&{&&&&&&&&&&&&PrintString(file,&L"&");&&&&&&&&&&&&PrintString(file,&a3);&&&&&&&&&&&&PrintString(file,&L"=\"");&&&&&&&&&&&&PrintEscapedName(file,&v3);&&&&&&&&&&&&PrintString(file,&L"\"");&&&&&&&&}&&&&&&&&PrintString(file,&L"&&\r\n");&&&&}&&&&void&PrintXMLClose(TextWriter&&file,&int&level,&const&wchar_t*&tagName)&&&&{&&&&&&&&PrintSpaces(file,&level);&&&&&&&&PrintString(file,&L"&/");&&&&&&&&PrintString(file,&tagName);&&&&&&&&PrintString(file,&L"&\r\n");&&&&}&&&&//--------------------------------------------------------------------&&&&Dictionary&WString,&IDiaSymbol*&&udtS&&&&Dictionary&WString,&IDiaSymbol*&&funcS&&&&void&AddOrRelease(Dictionary&WString,&IDiaSymbol*&&&symbols,&IDiaSymbol*&symbol)&&&&{&&&&&&&&//&get&name&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&if(SUCCEEDED(symbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&{&&&&&&&&&&&&WString&name=nameBSTR;&&&&&&&&&&&&if(!symbols.Keys().Contains(name))&&&&&&&&&&&&{&&&&&&&&&&&&&&&&//&record&class&symbol&&&&&&&&&&&&&&&&symbols.Add(name,&symbol);&&&&&&&&&&&&&&&&symbol=<span style="color: #;&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&if(symbol)&symbol-&Release();&&&&}&&&&void&AddUdtOrRelease(IDiaSymbol*&udtType)&&&&{&&&&&&&&AddOrRelease(udtSymbols,&udtType);&&&&}&&&&void&AddFuncOrRelease(IDiaSymbol*&funcSymbol)&&&&{&&&&&&&&AddOrRelease(funcSymbols,&funcSymbol);&&&&}&&&&void&FindClasses(IDiaSymbol*&exeSymbol)&&&&{&&&&&&&&{&&&&&&&&&&&&//&enumerate&classes&&&&&&&&&&&&IDiaEnumSymbols*&udtEnum=<span style="color: #;&&&&&&&&&&&&if(SUCCEEDED(exeSymbol-&findChildren(SymTagUDT,&NULL,&nsNone,&&udtEnum)))&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DWORD&udtCelt=<span style="color: #;&&&&&&&&&&&&&&&&IDiaSymbol*&udtSymbol=<span style="color: #;&&&&&&&&&&&&&&&&while(SUCCEEDED(udtEnum-&Next(<span style="color: #,&&udtSymbol,&&udtCelt))&&&&udtSymbol&&&&udtCelt)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&AddUdtOrRelease(udtSymbol);&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&{&&&&&&&&&&&&//&enumerate&enums&&&&&&&&&&&&IDiaEnumSymbols*&enumEnum=<span style="color: #;&&&&&&&&&&&&if(SUCCEEDED(exeSymbol-&findChildren(SymTagEnum,&NULL,&nsNone,&&enumEnum)))&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DWORD&enumCelt=<span style="color: #;&&&&&&&&&&&&&&&&IDiaSymbol*&enumSymbol=<span style="color: #;&&&&&&&&&&&&&&&&while(SUCCEEDED(enumEnum-&Next(<span style="color: #,&&enumSymbol,&&enumCelt))&&&&enumSymbol&&&&enumCelt)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&AddUdtOrRelease(enumSymbol);&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&{&&&&&&&&&&&&//&enumerate&compilands&&&&&&&&&&&&IDiaEnumSymbols*&compilandEnum=<span style="color: #;&&&&&&&&&&&&if(SUCCEEDED(exeSymbol-&findChildren(SymTagCompiland,&NULL,&nsNone,&&compilandEnum)))&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DWORD&compilandCelt=<span style="color: #;&&&&&&&&&&&&&&&&IDiaSymbol*&compilandSymbol=<span style="color: #;&&&&&&&&&&&&&&&&while(SUCCEEDED(compilandEnum-&Next(<span style="color: #,&&compilandSymbol,&&compilandCelt))&&&&compilandSymbol&&&&compilandCelt)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&//&enumerate&functions&&&&&&&&&&&&&&&&&&&&IDiaEnumSymbols*&functionEnum=<span style="color: #;&&&&&&&&&&&&&&&&&&&&if(SUCCEEDED(compilandSymbol-&findChildren(SymTagFunction,&NULL,&nsNone,&&functionEnum)))&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&DWORD&functionCelt=<span style="color: #;&&&&&&&&&&&&&&&&&&&&&&&&IDiaSymbol*&functionSymbol=<span style="color: #;&&&&&&&&&&&&&&&&&&&&&&&&while(SUCCEEDED(functionEnum-&Next(<span style="color: #,&&functionSymbol,&&functionCelt))&&&&functionSymbol&&&&functionCelt)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&IDiaSymbol*&udtType=<span style="color: #;&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(SUCCEEDED(functionSymbol-&get_classParent(&udtType))&&&&udtType)&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&AddUdtOrRelease(udtType);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&functionSymbol-&Release();&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&else&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&AddFuncOrRelease(functionSymbol);&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&functionEnum-&Release();&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&compilandSymbol-&Release();&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&compilandEnum-&Release();&&&&&&&&&&&&}&&&&&&&&}&&&&}&&&&//--------------------------------------------------------------------&&&&const&wchar_t*&GetAccessName(enum&CV_access_e&access)&&&&{&&&&&&&&switch(access)&&&&&&&&{&&&&&&&&case&CV_private:&return&L"private";&&&&&&&&case&CV_protected:&return&L"protected";&&&&&&&&case&CV_public:&return&L"public";&&&&&&&&default:&return&L"";&&&&&&&&}&&&&}&&&&const&wchar_t*&GetCallingConversionName(enum&CV_call_e&callconv)&&&&{&&&&&&&&switch(callconv)&&&&&&&&{&&&&&&&&case&CV_CALL_NEAR_C:&return&L"cdecl";&&&&&&&&case&CV_CALL_NEAR_FAST:&return&L"fastcall";&&&&&&&&case&CV_CALL_NEAR_STD:&return&L"stdcall";&&&&&&&&case&CV_CALL_NEAR_SYS:&return&L"syscall";&&&&&&&&case&CV_CALL_THISCALL:&return&L"thiscall";&&&&&&&&case&CV_CALL_CLRCALL:&return&L"clrcall";&&&&&&&&default:&return&L"";&&&&&&&&}&&&&}&&&&const&wchar_t*&GetBasicTypeName(enum&BasicType&type,&int&length)&&&&{&&&&&&&&switch(type)&&&&&&&&{&&&&&&&&case&btVoid:&&&&&&&&return&L"void";&&&&&&&&case&btChar:&&&&&&&&return&L"char";&&&&&&&&case&btWChar:&&&&&&&&return&L"wchar_t";&&&&&&&&case&btInt:&&&&&&&&case&btLong:&&&&&&&&return&length==<span style="color: #?L"signed&__int8":length==<span style="color: #?L"signed&__int16":length==<span style="color: #?L"signed&__int32":length==<span style="color: #?L"signed&__int64":L"[UnknownSInt]";&&&&&&&&case&btUInt:&&&&&&&&case&btULong:&&&&&&&&return&length==<span style="color: #?L"unsigned&__int8":length==<span style="color: #?L"unsigned&__int16":length==<span style="color: #?L"unsigned&__int32":length==<span style="color: #?L"unsigned&__int64":L"[UnknownUInt]";&&&&&&&&case&btFloat:&&&&&&&&return&length==<span style="color: #?L"float":length==<span style="color: #?L"double":L"[UnknownFloat]";&&&&&&&&case&btBool:&&&&&&&&return&L"bool";&&&&&&&&case&btBCD:&&&&&&&&&&&&return&L"[BCD]";&&&&&&&&case&btCurrency:&&&&return&L"[Currency]";&&&&&&&&case&btDate:&&&&&&&&return&L"[Date]";&&&&&&&&case&btVariant:&&&&&&&&return&L"[Variant]";&&&&&&&&case&btComplex:&&&&&&&&return&L"[Complex]";&&&&&&&&case&btBit:&&&&&&&&&&&&return&L"[Bit]";&&&&&&&&case&btBSTR:&&&&&&&&return&L"[BSTR]";&&&&&&&&case&btHresult:&&&&&&&&return&L"[HRESULT]";&&&&&&&&default:&&&&&&&&&&&&return&L"[NoType]";&&&&&&&&}&&&&}&&&&//--------------------------------------------------------------------&&&&extern&void&DumpType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level);&&&&void&DumpTypeHelper(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level,&const&wchar_t*&tagName,&const&wchar_t*&symbolName,&bool&close=true)&&&&{&&&&&&&&BOOL&constType=FALSE,&volatileType=FALSE;&&&&&&&&typeSymbol-&get_constType(&constType);&&&&&&&&typeSymbol-&get_volatileType(&volatileType);&&&&&&&&PrintXMLOpen(file,&level,&tagName,&symbolName,&L"const",&(constType?L"true":L"false"),&L"volatile",&(volatileType?L"true":L"false"));&&&&&&&&if(close)&&&&&&&&{&&&&&&&&&&&&PrintXMLClose(file,&level,&tagName);&&&&&&&&}&&&&}&&&&void&DumpFunctionType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"function",&NULL,&false);&&&&&&&&{&&&&&&&&&&&&CV_call_e&&&&&&&&&&&&&typeSymbol-&get_callingConvention((DWORD*)&callconv);&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"callconv",&NULL,&L"value",&GetCallingConversionName(callconv));&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"callconv");&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"arguments",&NULL);&&&&&&&&&&&&{&&&&&&&&&&&&&&&&IDiaEnumSymbols*&argumentEnum=<span style="color: #;&&&&&&&&&&&&&&&&if(SUCCEEDED(typeSymbol-&findChildren(SymTagFunctionArgType,&NULL,&nsNone,&&argumentEnum))&&&&argumentEnum)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&DWORD&argumentCelt=<span style="color: #;&&&&&&&&&&&&&&&&&&&&IDiaSymbol*&argumentSymbol=<span style="color: #;&&&&&&&&&&&&&&&&&&&&while(SUCCEEDED(argumentEnum-&Next(<span style="color: #,&&argumentSymbol,&&argumentCelt))&&&&argumentSymbol&&&&argumentCelt)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&IDiaSymbol*&argumentType=<span style="color: #;&&&&&&&&&&&&&&&&&&&&&&&&if(SUCCEEDED(argumentSymbol-&get_type(&argumentType)))&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"argument",&NULL);&&&&&&&&&&&&&&&&&&&&&&&&&&&&DumpType(file,&argumentType,&level+<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"argument");&&&&&&&&&&&&&&&&&&&&&&&&&&&&argumentType-&Release();&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&argumentSymbol-&Release();&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&argumentEnum-&Release();&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"arguments");&&&&&&&&}&&&&&&&&IDiaSymbol*&returnTypeSymbol=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_type(&returnTypeSymbol))&&&&returnTypeSymbol)&&&&&&&&{&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"return",&NULL);&&&&&&&&&&&&DumpType(file,&returnTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"return");&&&&&&&&&&&&returnTypeSymbol-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&level,&L"function");&&&&}&&&&void&DumpPointerType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&IDiaSymbol*&elementTypeSymbol=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_type(&elementTypeSymbol))&&&&elementTypeSymbol)&&&&&&&&{&&&&&&&&&&&&BOOL&lref=FALSE;&&&&&&&&&&&&BOOL&rref=FALSE;&&&&&&&&&&&&typeSymbol-&get_reference(&lref);&&&&&&&&&&&&typeSymbol-&get_RValueReference(&rref);&&&&&&&&&&&&if(lref)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"reference",&NULL,&false);&&&&&&&&&&&&&&&&DumpType(file,&elementTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&level,&L"reference");&&&&&&&&&&&&}&&&&&&&&&&&&else&if(rref)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"rightValueReference",&NULL,&false);&&&&&&&&&&&&&&&&DumpType(file,&elementTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&level,&L"rightValueReference");&&&&&&&&&&&&}&&&&&&&&&&&&else&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"pointer",&NULL,&false);&&&&&&&&&&&&&&&&DumpType(file,&elementTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&level,&L"pointer");&&&&&&&&&&&&}&&&&&&&&&&&&elementTypeSymbol-&Release();&&&&&&&&}&&&&}&&&&void&DumpArrayType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&IDiaSymbol*&indexTypeSymbol=<span style="color: #;&&&&&&&&IDiaSymbol*&elementTypeSymbol=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_type(&elementTypeSymbol))&&&&elementTypeSymbol)&&&&&&&&{&&&&&&&&&&&&ULONGLONG&arraySize=<span style="color: #,&elementSize=<span style="color: #;&&&&&&&&&&&&typeSymbol-&get_length(&arraySize);&&&&&&&&&&&&elementTypeSymbol-&get_length(&elementSize);&&&&&&&&&&&&int&elementCount=arraySize?(int)(arraySize/elementSize):<span style="color: #;&&&&&&&&&&&&wchar_t&elementCountBuffer[<span style="color: #];&&&&&&&&&&&&_itow_s(elementCount,&elementCountBuffer,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"array",&NULL,&false);&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"count",&NULL,&L"value",&elementCountBuffer);&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"count");&&&&&&&&&&&&if(SUCCEEDED(typeSymbol-&get_arrayIndexType(&indexTypeSymbol))&&&&indexTypeSymbol)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"index",&NULL);&&&&&&&&&&&&&&&&DumpType(file,&indexTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"index");&&&&&&&&&&&&&&&&indexTypeSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&PrintXMLOpen(file,&level+<span style="color: #,&L"element",&NULL);&&&&&&&&&&&&DumpType(file,&elementTypeSymbol,&level+<span style="color: #);&&&&&&&&&&&&PrintXMLClose(file,&level+<span style="color: #,&L"element");&&&&&&&&&&&&PrintXMLClose(file,&level,&L"array");&&&&&&&&&&&&elementTypeSymbol-&Release();&&&&&&&&}&&&&}&&&&void&DumpBaseType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&enum&BasicType&basicType=btNoT&&&&&&&&ULONGLONG&length=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_baseType((DWORD*)&basicType))&&&&SUCCEEDED(typeSymbol-&get_length(&length)))&&&&&&&&{&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"primitive",&GetBasicTypeName(basicType,&(int)length));&&&&&&&&}&&&&}&&&&void&DumpEnumType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&{&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"enumType",&nameBSTR);&&&&&&&&}&&&&}&&&&void&DumpUserType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&if(SUCCEEDED(typeSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&{&&&&&&&&&&&&DumpTypeHelper(file,&typeSymbol,&level,&L"classType",&nameBSTR);&&&&&&&&}&&&&}&&&&void&DumpType(TextWriter&&file,&IDiaSymbol*&typeSymbol,&int&level)&&&&{&&&&&&&&enum&SymTagEnum&symTag=SymTagN&&&&&&&&typeSymbol-&get_symTag((DWORD*)&symTag);&&&&&&&&switch(symTag)&&&&&&&&{&&&&&&&&case&SymTagFunctionType:&&&&&&&&&&&&return&DumpFunctionType(file,&typeSymbol,&level);&&&&&&&&case&SymTagPointerType:&&&&&&&&&&&&return&DumpPointerType(file,&typeSymbol,&level);&&&&&&&&case&SymTagArrayType:&&&&&&&&&&&&return&DumpArrayType(file,&typeSymbol,&level);&&&&&&&&case&SymTagBaseType:&&&&&&&&&&&&return&DumpBaseType(file,&typeSymbol,&level);&&&&&&&&case&SymTagEnum:&&&&&&&&&&&&return&DumpUserType(file,&typeSymbol,&level);&&&&&&&&case&SymTagUDT:&&&&&&&&&&&&return&DumpUserType(file,&typeSymbol,&level);&&&&&&&&}&&&&}&&&&void&DumpSymbolType(TextWriter&&file,&IDiaSymbol*&symbolWithType,&int&symbolLevel)&&&&{&&&&&&&&IDiaSymbol*&typeSymbol=<span style="color: #;&&&&&&&&if(SUCCEEDED(symbolWithType-&get_type(&typeSymbol))&&&&typeSymbol)&&&&&&&&{&&&&&&&&&&&&PrintXMLOpen(file,&symbolLevel+<span style="color: #,&L"type",&NULL);&&&&&&&&&&&&DumpType(file,&typeSymbol,&symbolLevel+<span style="color: #);&&&&&&&&&&&&PrintXMLClose(file,&symbolLevel+<span style="color: #,&L"type");&&&&&&&&&&&&typeSymbol-&Release();&&&&&&&&}&&&&}&&&&//--------------------------------------------------------------------&&&&void&DumpBaseClasses(TextWriter&&file,&IDiaSymbol*&udtSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"baseClasses",&NULL,&false);&&&&&&&&IDiaEnumSymbols*&baseClassEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(udtSymbol-&findChildren(SymTagBaseClass,&NULL,&nsNone,&&baseClassEnum))&&&&baseClassEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&baseClassCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&baseClassSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(baseClassEnum-&Next(<span style="color: #,&&baseClassSymbol,&&baseClassCelt))&&&&baseClassSymbol&&&&baseClassCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&CV_access_e&access=CV_&&&&&&&&&&&&&&&&baseClassSymbol-&get_access((DWORD*)&access);&&&&&&&&&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&&&&&&&&&if(SUCCEEDED(baseClassSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"baseClass",&nameBSTR,&L"access",&GetAccessName(access));&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"baseClass");&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&baseClassSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&baseClassEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"baseClasses");&&&&}&&&&void&DumpNestedClasses(TextWriter&&file,&IDiaSymbol*&udtSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"nestedClasses",&NULL,&false);&&&&&&&&IDiaEnumSymbols*&nestedClassEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(udtSymbol-&findChildren(SymTagUDT,&NULL,&nsNone,&&nestedClassEnum))&&&&nestedClassEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&nestedClassCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&nestedClassSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(nestedClassEnum-&Next(<span style="color: #,&&nestedClassSymbol,&&nestedClassCelt))&&&&nestedClassSymbol&&&&nestedClassCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&&&&&&&&&if(SUCCEEDED(nestedClassSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"nestedClass",&nameBSTR);&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"nestedClass");&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&nestedClassSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&nestedClassEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"nestedClasses");&&&&}&&&&void&DumpTypedefs(TextWriter&&file,&IDiaSymbol*&udtSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"typedefs",&NULL,&false);&&&&&&&&IDiaEnumSymbols*&typedefEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(udtSymbol-&findChildren(SymTagTypedef,&NULL,&nsNone,&&typedefEnum))&&&&typedefEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&typedefCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&typedefSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(typedefEnum-&Next(<span style="color: #,&&typedefSymbol,&&typedefCelt))&&&&typedefSymbol&&&&typedefCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&&&&&&&&&if(SUCCEEDED(typedefSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"typedef",&nameBSTR);&&&&&&&&&&&&&&&&&&&&DumpSymbolType(file,&typedefSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"typedef");&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&typedefSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&typedefEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"typedefs");&&&&}&&&&void&DumpFields(TextWriter&&file,&IDiaSymbol*&udtSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"fields",&NULL);&&&&&&&&IDiaEnumSymbols*&fieldEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(udtSymbol-&findChildren(SymTagData,&NULL,&nsNone,&&fieldEnum))&&&&fieldEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&fieldCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&fieldSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(fieldEnum-&Next(<span style="color: #,&&fieldSymbol,&&fieldCelt))&&&&fieldSymbol&&&&fieldCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&enum&DataKind&dataK&&&&&&&&&&&&&&&&if(SUCCEEDED(fieldSymbol-&get_dataKind((DWORD*)&dataKind))&&&&(dataKind==DataIsMember&||&dataKind==DataIsStaticMember&||&dataKind==DataIsConstant))&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&enum&CV_access_e&&&&&&&&&&&&&&&&&&&&&fieldSymbol-&get_access((DWORD*)&access);&&&&&&&&&&&&&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&&&&&&&&&&&&&if(SUCCEEDED(fieldSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&if(dataKind==DataIsMember)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"field",&nameBSTR,&L"access",&GetAccessName(access));&&&&&&&&&&&&&&&&&&&&&&&&&&&&DumpSymbolType(file,&fieldSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"field");&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&else&if(dataKind==DataIsStaticMember)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"staticField",&nameBSTR,&L"access",&GetAccessName(access));&&&&&&&&&&&&&&&&&&&&&&&&&&&&DumpSymbolType(file,&fieldSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"staticField");&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&else&if(dataKind==DataIsConstant)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"const",&nameBSTR,&L"access",&GetAccessName(access));&&&&&&&&&&&&&&&&&&&&&&&&&&&&DumpSymbolType(file,&fieldSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&VARIANT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&value.vt&=&VT_EMPTY;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(fieldSymbol-&get_value(&value)&==&S_OK)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&signed&__int64&ivalue=<span style="color: #;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&switch(value.vt)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_I1:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.cV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_I2:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.iV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_I4:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.lV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_UI1:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.bV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_UI2:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.uiV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&VT_UI4:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ivalue=value.ulV&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&goto&PROCESS_INTEGER;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&PROCESS_INTEGER:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&wchar_t&valueBuffer[<span style="color: #0];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&_i64tow_s(ivalue,&valueBuffer,&<span style="color: #0,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"intValue",&NULL,&L"value",&valueBuffer);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"intValue");&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&break;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"const");&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&fieldSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&fieldEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"fields");&&&&}&&&&void&DumpMethodArguments(TextWriter&&file,&IDiaSymbol*&methodSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"arguments",&NULL);&&&&&&&&IDiaEnumSymbols*&argumentEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(methodSymbol-&findChildren(SymTagData,&NULL,&nsNone,&&argumentEnum))&&&&argumentEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&argumentCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&argumentSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(argumentEnum-&Next(<span style="color: #,&&argumentSymbol,&&argumentCelt))&&&&argumentSymbol&&&&argumentCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&enum&DataKind&dataK&&&&&&&&&&&&&&&&if(SUCCEEDED(argumentSymbol-&get_dataKind((DWORD*)&dataKind))&&&&dataKind==DataIsParam)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&&&&&&&&&&&&&if(SUCCEEDED(argumentSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"argument",&nameBSTR);&&&&&&&&&&&&&&&&&&&&&&&&DumpSymbolType(file,&argumentSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"argument");&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&argumentSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&argumentEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"arguments");&&&&}&&&&void&DumpMethod(TextWriter&&file,&IDiaSymbol*&methodSymbol)&&&&{&&&&&&&&enum&CV_access_e&&&&&&&&&methodSymbol-&get_access((DWORD*)&access);&&&&&&&&BOOL&staticMethod=FALSE;&&&&&&&&methodSymbol-&get_isStatic(&staticMethod);&&&&&&&&BSTR&nameBSTR=<span style="color: #;&&&&&&&&const&wchar_t*&virtualValue=L"normal";&&&&&&&&BOOL&virtualBool=FALSE;&&&&&&&&if(SUCCEEDED(methodSymbol-&get_pure(&virtualBool))&&&&virtualBool)&&&&&&&&{&&&&&&&&&&&&virtualValue=L"pure";&&&&&&&&}&&&&&&&&else&if(SUCCEEDED(methodSymbol-&get_virtual(&virtualBool))&&&&virtualBool)&&&&&&&&{&&&&&&&&&&&&virtualValue=L"virtual";&&&&&&&&}&&&&&&&&if(SUCCEEDED(methodSymbol-&get_name(&nameBSTR))&&&&nameBSTR)&&&&&&&&{&&&&&&&&&&&&if(staticMethod)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"staticMethod",&nameBSTR,&L"access",&GetAccessName(access),&L"virtual",&virtualValue);&&&&&&&&&&&&&&&&DumpMethodArguments(file,&methodSymbol);&&&&&&&&&&&&&&&&DumpSymbolType(file,&methodSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"staticMethod");&&&&&&&&&&&&}&&&&&&&&&&&&else&&&&&&&&&&&&{&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"method",&nameBSTR,&L"access",&GetAccessName(access),&L"virtual",&virtualValue);&&&&&&&&&&&&&&&&DumpMethodArguments(file,&methodSymbol);&&&&&&&&&&&&&&&&DumpSymbolType(file,&methodSymbol,&<span style="color: #);&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"method");&&&&&&&&&&&&}&&&&&&&&}&&&&}&&&&void&DumpMethods(TextWriter&&file,&IDiaSymbol*&udtSymbol)&&&&{&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"methods",&NULL);&&&&&&&&IDiaEnumSymbols*&methodEnum=<span style="color: #;&&&&&&&&if(SUCCEEDED(udtSymbol-&findChildren(SymTagFunction,&NULL,&nsNone,&&methodEnum))&&&&methodEnum)&&&&&&&&{&&&&&&&&&&&&DWORD&methodCelt=<span style="color: #;&&&&&&&&&&&&IDiaSymbol*&methodSymbol=<span style="color: #;&&&&&&&&&&&&while(SUCCEEDED(methodEnum-&Next(<span style="color: #,&&methodSymbol,&&methodCelt))&&&&methodSymbol&&&&methodCelt)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&DumpMethod(file,&methodSymbol);&&&&&&&&&&&&&&&&methodSymbol-&Release();&&&&&&&&&&&&}&&&&&&&&&&&&methodEnum-&Release();&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"methods");&&&&}&&&&void&Dump(TextWriter&&file,&IDiaSymbol*&exeSymbol)&&&&{&&&&&&&&FindClasses(exeSymbol);&&&&&&&&for(int&i=<span style="color: #;i&udtSymbols.Count();i++)&&&&&&&&{&&&&&&&&&&&&WString&className=udtSymbols.Keys()[i];&&&&&&&&&&&&IDiaSymbol*&classSymbol=udtSymbols.Values()[i];&&&&&&&&&&&&enum&SymTagEnum&symTag=SymTagN&&&&&&&&&&&&classSymbol-&get_symTag((DWORD*)&symTag);&&&&&&&&&&&&if(symTag==SymTagUDT)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"class",&className.Buffer());&&&&&&&&&&&&&&&&DumpBaseClasses(file,&classSymbol);&&&&&&&&&&&&&&&&DumpNestedClasses(file,&classSymbol);&&&&&&&&&&&&&&&&DumpTypedefs(file,&classSymbol);&&&&&&&&&&&&&&&&DumpFields(file,&classSymbol);&&&&&&&&&&&&&&&&DumpMethods(file,&classSymbol);&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"class");&&&&&&&&&&&&}&&&&&&&&&&&&else&if(symTag==SymTagEnum)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"enum",&className.Buffer());&&&&&&&&&&&&&&&&DumpFields(file,&classSymbol);&&&&&&&&&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"enum");&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&for(int&i=<span style="color: #;i&udtSymbols.Count();i++)&&&&&&&&{&&&&&&&&&&&&udtSymbols.Values()[i]-&Release();&&&&&&&&}&&&&&&&&udtSymbols.Clear();&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"functions",&NULL);&&&&&&&&for(int&i=<span style="color: #;i&funcSymbols.Count();i++)&&&&&&&&{&&&&&&&&&&&&WString&funcName=funcSymbols.Keys()[i];&&&&&&&&&&&&IDiaSymbol*&funcSymbol=funcSymbols.Values()[i];&&&&&&&&&&&&DumpMethod(file,&funcSymbol);&&&&&&&&}&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"functions");&&&&&&&&for(int&i=<span style="color: #;i&funcSymbols.Count();i++)&&&&&&&&{&&&&&&&&&&&&funcSymbols.Values()[i]-&Release();&&&&&&&&}&&&&&&&&funcSymbols.Clear();&&&&}&&&&void&DumpPdbToXml(IDiaSymbol*&exeSymbol,&const&wchar_t*&xml)&&&&{&&&&&&&&FileStream&fileStream(xml,&FileStream::WriteOnly);&&&&&&&&CacheStream&cacheStream(fileStream,&<span style="color: #48576);&&&&&&&&BomEncoder&encoder(BomEncoder::Utf16);&&&&&&&&EncoderStream&encoderStream(cacheStream,&encoder);&&&&&&&&StreamWriter&file(encoderStream);&&&&&&&&PrintString(file,&L"&?xml&version=\"<span style="color: #.0\"&encoding=\"utf-<span style="color: #\"&?&\r\n");&&&&&&&&PrintXMLOpen(file,&<span style="color: #,&L"pdb",&NULL);&&&&&&&&Dump(file,&exeSymbol);&&&&&&&&PrintXMLClose(file,&<span style="color: #,&L"pdb");&&&&}}&&& 下一篇文章将讲到我如何使用上面的程序产生的xml和Visual Studio的本地C++编译器生成的XML文档,来合并成一个完整的XML描述的文档。
阅读(4434)
阅读排行榜
评论排行榜

我要回帖

更多关于 vs2010 ocx控件开发 的文章

 

随机推荐