我正在尝试编写一个 C# 库来操作我的 C/C++ 头文件。我希望能够读取和解析头文件并在 C# 中操作函数原型和数据结构。由于#ifdefs 和类似的东西引起的所有代码分支,我试图避免编写C Parser。
我尝试过使用 EnvDTE,但找不到任何像样的文档。有什么想法我该怎么做?
编辑 - 谢谢你的回答......这里有一些关于我的项目的更多细节:我正在使用调试 API 为 Windows 编写一个类似 ptrace 的工具,这使我能够跟踪我已经编译的二进制文件并查看哪些 Windows API 是被调用。我还想看看每次调用中给出了哪些参数以及给出了哪些返回值,所以我需要知道 API 的定义。我也想知道我自己的库的定义(因此,头解析方法)。我想到了 3 个解决方案: * 解析头文件 * 解析 PDB 文件(我使用 DIA SDK 编写了一个原型,但不幸的是,符号 PDB 仅包含有关 API 的一般信息,而不包含带有参数和返回值的真实原型) * 爬取 MSDN 在线图书馆(自动或手动)
有没有更好的方法可以在 c# 中在运行时获取 windows API 和我的库的名称和类型?