解析C ++的方法定义了什么?

时间:2010-08-10 13:53:39

标签: c++

我正在用C ++构建一个驱动程序,它依赖于另一个dll(惊喜!)。这个dll带有一个包含巨大定义列表的标题。每个定义代表不同的返回,消息和错误代码。

这些定义集中的每一个都有一个前缀,可以区别于其他定义。类似的东西:

MSG_GOOD ... MSG_BAD ... MSG_INDIFFERENT ...

RETURN_OK ... RETURN_OMG .. RETURN_WHAT ...

但其中有数百人。这使事情变得难以调试。

理想情况下,我想找到一种方法来获得某种合理的日志输出和纯文本。我当时认为可能在运行时解析H文件,但编译时间较短的选项会好得多。

1 个答案:

答案 0 :(得分:1)

我认为你必须在某个时刻解析.h文件,因为一旦编译,#define将不再是代码中的任何地方。仅为#defines解析.h文件并不太难 - 只需读完整行(注意最后的反斜杠),ltrim它们,如果它们以"#define "开头,那么{{ 1}}第一个空格的余数,split两个部分,将它们填入键/值容器中,基本上就完成了。即使在C ++中也不应该太难。