'operator new':重新定义,不同的链接(在重新定义的新运算符上使用_dllspec)

5 c++ dll linker extern

我在新的调试版本上使用__declspec(dllimport/export):

#ifdef _DEBUG
 DECLSPECCORE extern   void* operator new(unsigned int size, const char* file, int line);
 extern void* operator new[](unsigned int size, const char* file, int line);
 extern void operator delete(void* address, const char* file, int line);
 extern void operator delete[](void* address, const char* file, int line);
 extern void Delete(void* address);

#define LUDO_NEW new(__FILE__, __LINE__)
#define LUDO_DELETE delete

#endif
Run Code Online (Sandbox Code Playgroud)

这导致我得到

错误C2375:'operator new':重新定义; 不同的联系.

为什么这样,你怎么解决它?这是我现在正在编译的唯一项目.

Ube*_*per 0

如果您有两个重载新运算符的原型,则必须将两者都导出。希望这是你的问题。