使用 Qt 的 dumpcpp 时重复的函数名称
Posted
技术标签:
【中文标题】使用 Qt 的 dumpcpp 时重复的函数名称【英文标题】:Duplicated function names when using Qt's dumpcpp 【发布时间】:2015-05-10 11:55:23 【问题描述】:我使用Qt5的dumpcpp工具生成word.h和word.cpp。而我的Qt项目还包含一些windows文件头如windows.h和setupapi.h,这些文件可能包含winuser.h。问题是,在 winuser.h 中有一个名为“ExitWindows”的函数宏,而在我生成的 word.h 中,在 Word::Task 类中有一个函数,也称为“ExitWindows”。结果是VS2013抛出警告:
警告 C4003:宏“ExitWindows”的实际参数不足
并出现以下错误:
错误 C2059:语法错误:...
waring 和 error 指向同一行。所以我猜原因是他们有相同的名字。
有没有优雅的方法来解决这个问题?
更新
还有另一个冲突的函数'Word::ColorFormat.RGB()',它也是wingdi.h中定义的一个宏。!!!
【问题讨论】:
我在 .pro 文件中使用 dumpcpp,例如 TYPELIBS = $$ourcom.dll 然后我包含生成标头,例如 #define QAX_DUMPCPP_MSTSCLIB_NOINLINES #include "ourcom.h" 然后在该文件的底部包含包含上面还有另一个包含#include“ourcom.cpp”,其中包含我需要的所有类。如果不做所有这些,我将无法管理由错误的 dumpcpp 工具引起的所有错误。我们基本上需要我们的 com_impl.cpp 选择性地启用那里只需要和正确的类/方法。 你可能感兴趣的文章bugreports.qt.io/browse/QTBUG-28383 我的解决方法是注释掉转储的方法,因为我现在不使用它们。它不是那么优雅,而只是又快又脏,. 【参考方案1】:我的解决方法是注释掉转储的方法,因为我现在不使用它们。
【讨论】:
答案中有吗? 是的,我决定把它作为答案,因为我找不到更多 elegant 方法来解决我的问题。所以把它们注释掉是一种又快又脏的方式。 @eyllanesc:如果你有更多好的方法来解决这个问题,请在这里回答:)。 我没有,但很多时候答案都是cmet,也就是质量低的问题,我觉得你的很接近。以上是关于使用 Qt 的 dumpcpp 时重复的函数名称的主要内容,如果未能解决你的问题,请参考以下文章