我有一个旧项目,它是在VS2005中编译的(非常遗憾)。由于必须与另一个具有VS2005 CRT、MFC等的进程正确链接,因此必须保留在VS2005中。现在,我需要在VS2015中使用旧的VS2005工具集来编译这个项目。我已经将项目的VC++目录更改为所有STD和Windows SDK头文件/库的旧文件夹(包括目录、引用目录、库目录、源目录)。尽管此技巧在使用VS2010时曾经起作用,但在使用VS2015时,我仍然遇到了一些奇怪的链接错误。
1>Project1.obj : error LNK2019: unresolved external symbol "void __stdcall `eh vector destructor iterator'(void *,unsigned int,unsigned int,void (__thiscall*)(void *))" (??_M@YGXPAXIIP6EX0@Z@Z) referenced in function "public: virtual void * __thiscall PluginInterface::`vector deleting destructor'(unsigned int)" (??_EPluginInterface@@UAEPAXI@Z)
1> 1>
1>StdAfx.obj : error LNK2001: unresolved external symbol "void __stdcall `eh vector destructor iterator'(void *,unsigned int,unsigned int,void (__thiscall*)(void *))" (??_M@YGXPAXIIP6EX0@Z@Z)
1> 1>
1>Project1.obj : error LNK2019: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z) referenced in function __unwindfunclet$?getInstance@Project1@@SAPAV1@XZ$0
1> 1>
1>Project1.obj : error LNK2019: unresolved external symbol "void __cdecl operator delete[](void *,unsigned int)" (??_V@YAXPAXI@Z) referenced in function "public: virtual void * __thiscall PluginInterface::`vector deleting destructor'(unsigned int)" (??_EPluginInterface@@UAEPAXI@Z)
为什么它要寻找这个析构函数的内部实现?它不应该从头文件中获取实现吗?为什么在 VS2010 中可以运行而在 VS2015 中不行呢?
我该如何适当地修复它?