3

我最近在一台新计算机上安装了 Visual Studio,并在其上设置 DirectX,我转到工具>选项>项目和解决方案>VC++ 目录并在库文件下创建了一个新条目C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

现在运行了一个测试程序(基本上只是初始化了 DirectX),它运行良好。但是,如果我更改...\Lib\x86...\Lib\x64,则会收到Direct3DCreate9未定义的链接器错误:

1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "void __cdecl init(void)" (?init@@YAXXZ)
4

3 回答 3

7

x86 库适用于 32 位应用程序,x64 库适用于 64 位应用程序。

您可以在 Visual Studio 的配置管理器中查看您的目标平台。除非您有充分的理由,否则您应该编写 32 位应用程序,因为 64 位应用程序需要 64 位版本的 Windows 才能运行。

于 2010-02-06T23:32:33.840 回答
0

简单的答案是 x86 库适用于 32 位操作系统,而 x64 库适用于 64 位操作系统。

简单地更改链接到的 DirectX 库会产生错误,因为您(很可能)试图将 32 位代码链接到 64 位库。您需要将代码编译为针对 64 位操作系统才能成功链接。

于 2010-02-06T23:32:48.597 回答
0

x64文件夹包含 AMD64 平台(Windows 64 位)的库文件。您还需要为 64 位编译应用程序。此外,您需要 64 位版本的 Windows 来运行生成的可执行文件。

于 2010-02-06T23:34:08.280 回答