即时得到一些警告说我有不一致的dll的联系,尽管我我的dll像这样的标题进行分类:不一致的DLL联动
#ifdef MY_ENGINE_EXPORTS
#define ENGINE __declspec(dllexport)
#else
#define ENGINE __declspec(dllimport)
#endif
它当我添加MY_ENGINE_EXPORTS到预处理工作正常,摆脱错误的的定义,但我的印象是这应该在构建/导出时自动完成。我说错了吗?我包含一个下划线,因为该项目是2个字,例如“我的引擎”。我试过它既是MY_ENGINE_EXPORTS也是MYENGINE_EXPORTS,但都不起作用。
正如我所说,我可以将它添加到预处理器的定义,但它是在扰乱我为什么它不像它应该那样行事。
如果您没有将它添加到预处理器定义中,那么您将明显地冒一些翻译单元意外定义的* not *有MY_ENGINE_EXPORTS#的风险。你也没有解释你是如何确定它是#defined。当然这解释了警告。 – 2013-03-13 00:05:19
我意识到这个问题现在有多愚蠢,但是我看过的每个主题都有以{projectname} _EXPORTS相同格式编写的#ifdef。我认为这是一个预定义的宏,该环境为构建的dll项目创建。这很烦人,但我无法找到我之前看到的链接,甚至说它是自动的。 – EvilWeebl 2013-03-13 00:13:49