ben visual studio 10 kullanılarak gdcm oluştururken düzeltmeye çalışıyorum uyarıların bir dizi (32 bit sürümü) var:Bu vs10 tutarsız dll bağlantı uyarısını nasıl düzeltebilirim?
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'
işlevi kendisini aramak gibi görünüyor:
XML_Parser XMLCALL
XML_ParserCreate(const XML_Char *encodingName)
{
return XML_ParserCreate_MM(encodingName, NULL, NULL);
}
nerede
#define XMLCALL __cdecl
ve
XMLPARSEAPI(XML_Parser)
XML_ParserCreate(const XML_Char *encoding);
nerede
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
ve
#define XMLIMPORT __declspec(dllimport)
Ben bağlantı sürekli XMLCALL-- sağ aracılığıyla __cdecl demektir ki düzgün olduğunu okuyorsam? Çünkü eğer öyleyse, o zaman uyarı gereksizdir, yoksa bunu yanlış yorumlu muyum?
Öyleydi-- bu dllimport bir dllexport olmalıydı. – mmr
Vay canına, ihraç edilen bir değişkeni de kaçırdım. Üstbilgisinde COMMON_API extern const std :: string someStr gibi bir şey vardı; cpp dosyasında std :: string someStr ("Background") vardı; bu da export/import specifier eksikti. API makrosu, ekiplerin, projenin bir dll yapması ya da olmamasını belirten bir makroya sahip olup olmadığına bağlı olarak değişir. Buna bir göz atmam gerekecek. – jxramos