我正在尝试编写一个C#库来操作我的C/C++头文件。我想能够读取和解析头文件,并在C#中操纵函数原型和数据结构。由于所有的#ifdef等代码分支,我试图避免编写C解析器。
我尝试了使用EnvDTE,但找不到合适的文档。有什么办法可以做到吗?
编辑 - 谢谢你们的答案……以下是有关我的项目的更多细节:我正在使用调试API编写类似于ptrace的Windows工具,它使我能够跟踪已经编译的二进制文件并查看调用哪些Windows API。我还想知道每个调用中给定的参数以及给定的返回值,因此我需要知道API的定义。我也想知道自己库的定义(因此,采用了头文件解析方法)。我想到了3种解决方案: * 解析头文件 * 解析PDB文件(我使用DIA SDK编写了一个原型,但不幸的是,符号PDB只包含有关API的一般信息,而不是带有参数和返回值的真实原型) * 在MSDN在线库上爬行(自动或手动)
有没有更好的方法来在C#中运行时获取Windows API和我的库的名称和类型?
我尝试了使用EnvDTE,但找不到合适的文档。有什么办法可以做到吗?
编辑 - 谢谢你们的答案……以下是有关我的项目的更多细节:我正在使用调试API编写类似于ptrace的Windows工具,它使我能够跟踪已经编译的二进制文件并查看调用哪些Windows API。我还想知道每个调用中给定的参数以及给定的返回值,因此我需要知道API的定义。我也想知道自己库的定义(因此,采用了头文件解析方法)。我想到了3种解决方案: * 解析头文件 * 解析PDB文件(我使用DIA SDK编写了一个原型,但不幸的是,符号PDB只包含有关API的一般信息,而不是带有参数和返回值的真实原型) * 在MSDN在线库上爬行(自动或手动)
有没有更好的方法来在C#中运行时获取Windows API和我的库的名称和类型?