我刚刚转到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上编译项目。
答案 0 :(得分:3)
您需要使用VS2012重新编译所有库才能解决此问题。这是VS2012附带的新C运行时库的问题。