解析C+的方法+;定义? 我在C++中构建了一个依赖于另一个DLL(惊奇!)的驱动程序。这个dll带有一个包含大量定义列表的头文件。每个定义表示不同的返回、消息和错误代码

解析C+的方法+;定义? 我在C++中构建了一个依赖于另一个DLL(惊奇!)的驱动程序。这个dll带有一个包含大量定义列表的头文件。每个定义表示不同的返回、消息和错误代码,c++,C++,这些定义集中的每一个都有一个前缀,使其区别于其他定义集。比如: 很好。。。味精坏了。。。无动于衷 返回\u OK。。。我的天哪。。还你什么 但是有几百个。这使得调试变得相当困难 理想情况下,我想找到一种方法,用纯文本获得某种合理的日志输出。我认为在运行时解析H文件是可能的,但是编译时不那么复杂的选项会更好 我认为您必须在某个时刻解析.h文件,因为一旦编译,#defines将不再位于代码中的任何位置。不过,仅为#defines解析.h文件并不太难-只需将其整行读取(请注意末尾的反斜杠),ltrim

这些定义集中的每一个都有一个前缀,使其区别于其他定义集。比如:

很好。。。味精坏了。。。无动于衷

返回\u OK。。。我的天哪。。还你什么

但是有几百个。这使得调试变得相当困难


理想情况下,我想找到一种方法,用纯文本获得某种合理的日志输出。我认为在运行时解析H文件是可能的,但是编译时不那么复杂的选项会更好

我认为您必须在某个时刻解析.h文件,因为一旦编译,#defines将不再位于代码中的任何位置。不过,仅为#defines解析.h文件并不太难-只需将其整行读取(请注意末尾的反斜杠),
ltrim
它们,如果它们以
“#define”
开头,则
将剩余部分拆分为第一个空格,
trim
这两部分,将它们放入一个键/值容器中,基本上就完成了。即使在C++中也不应该太难。

也许这个处理的输出可能是一个EnUM定义,它可以被反馈到项目中…