4

我刚刚转移到 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 上编译该项目。

4

1 回答 1

3

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

于 2012-07-12T19:41:46.127 回答