2010-08-10 35 views
0

我正在C++中构建一个驱动程序,它非常依赖另一个dll(惊喜!)。这个dll带有一个头文件,其中包含一个巨大的定义列表。每个定义代表不同的回报,消息和错误代码。解析C++的方法定义?

这些定义集合中的每一个都有一个区别于其他区域的前缀。喜欢的东西:

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

RETURN_OK ... RETURN_OMG .. RETURN_WHAT ...

不过数百人。这使得调试非常困难。

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

回答

1

我认为你必须在某个点或另一个点解析.h文件,因为一旦编译完成,#define就不会再出现在代码中的任何地方。仅仅为#define解析.h文件并不算太困难 - 只需全线读取(请注意最后的反斜杠),它们是ltrim,如果它们以"#define ",则split开头,剩下的在第一个空白处,即trim部件,将它们填充到键/值容器中,并且基本完成。即使在C++中也不应该太难。

+0

也许这个处理的输出可能是一个枚举定义,它可以反馈到项目中...... – 2010-08-10 14:34:32