10
我有一系列的警告,我试图用visual studio 10建设gdcm时修复(32位版本):如何解决这个vs10不一致的dll联动警告?
4>..\..\..\..\gdcm\Utilities\gdcmexpat\lib\xmlparse.c(647): warning C4273: 'XML_ParserCreate' : inconsistent dll linkage
4> d:\src\gdcm\gdcm\utilities\gdcmexpat\lib\expat.h(206) : see previous definition of 'XML_ParserCreate'
函数调用本身看起来像:
XML_Parser XMLCALL
XML_ParserCreate(const XML_Char *encodingName)
{
return XML_ParserCreate_MM(encodingName, NULL, NULL);
}
哪里
#define XMLCALL __cdecl
和
XMLPARSEAPI(XML_Parser)
XML_ParserCreate(const XML_Char *encoding);
其中
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
和
#define XMLIMPORT __declspec(dllimport)
如果我读,妥善,这意味着联动始终通过XMLCALL--权__cdecl?因为,如果是这样,那么警告是多余的,还是我误解了这个?
这就是它 - 这dllimport的应该是一个DLLEXPORT。 – mmr 2011-03-17 22:14:46
哇,我错过了一个变量被导出。在标头,我有这样的事情'COMMON_API的extern常量的std :: string someStr;'而在cpp文件我'常量的std :: string someStr(“背景”);'这是缺少出口/进口符。 API宏根据项目是否定义了一个宏来改变团队,告诉它是否为dll构建。我必须密切注意这一点。 – jxramos 2016-07-19 18:00:55