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

我在新的调试版本上使用__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

这导致我得到

error C2375: ‘operator new’:
redefinition; different linkage.

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

最佳答案
如果你有两个重载新运算符的两个原型,你必须导出它们. Hopefulyl这是你的问题.

转载注明原文:c – ‘operator new’:重新定义,不同的链接(在重新定义的新运算符上使用_dllspec) - 代码日志