将项目移动到Visual Studio 2012

时间:2012-07-12 19:16:47

标签: c++ directx linker-errors visual-studio-2012

我刚刚转到Visual Studio 2012 RC进行测试运行。但是我在使用DirectX 11游戏项目时遇到了问题。当我构建时,我得到1152个警告,所有这些都是这样的:

1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\dwrite.h(4972): warning C4005: 'DWRITE_E_NOFONT' : macro redefinition
1>          c:\program files (x86)\windows kits\8.0\include\shared\winerror.h(50217) : see previous definition of 'DWRITE_E_NOFONT'

它们来自所有DirectX标头,每个标头都用于不同的宏。我还得到了一些我以前没有得到的未解决的外部符号:

1>base.obj : error LNK2019: unresolved external symbol "void __cdecl operator delete(void *,int,char const *,int)" (??3@YAXPAXHPBDH@Z) referenced in function __unwindfunclet$??__EgGame@@YAXXZ$0
1>game.obj : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,int,char const *,int)" (??3@YAXPAXHPBDH@Z)
1>world.obj : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,int,char const *,int)" (??3@YAXPAXHPBDH@Z)

我认为delete唯一会被重载的地方是#include <crtdbg.h>,我在项目中使用它。但问题是,所有这些都在Visual Studio 2010中工作。

不确定问题是什么。转换项目时我是否遗漏了任何步骤?

我还应该提到我的计算机以前崩溃了(我只丢失了Windows和注册表)所以我不得不重新安装我的大部分程序。我不知道这是否会发挥作用,但自从崩溃以来我还没有在VS2010上编译项目。

1 个答案:

答案 0 :(得分:3)

您需要使用VS2012重新编译所有库才能解决此问题。这是VS2012附带的新C运行时库的问题。

相关问题