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,但似乎都不起作用.

正如我所说的,我可以将它添加到预处理器定义中,但它让我觉得它不应该表现得如此.

解决方法

I figured it was a predefined macro that the environment created for dll projects

是的,当您使用Win32项目模板启动DLL项目时,确实会发生这种情况.该向导将自动为您添加PROJECTNAME_EXPORTS预处理器定义.

皱纹是它不能在符号中使用空格,因此它不能使用“MY PROJECT_EXPORTS”.它将放下空间并使其成为MYPROJECT_EXPORTS.这与你使用的那个不匹配,MY_PROJECT_EXPORTS.什么都没有快速编辑替换无法修复当然.

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...