4

我遇到了烦人的链接器问题 - VS2010 声称它找不到这个文件,但它显然在那里,并且路径是正确的 - 我在同一个文件夹中使用其他库,所有工作都没有问题。(d3d9.lib 和 dinput8.lib)我正在使用 2010 年 2 月版的 DXSDK (DX9),以防万一。我什至尝试过复制/粘贴文件名,所以我知道我没有输入错误。我的“附加依赖项”行如下所示:

Library.lib;d3d9.lib;dinput8.lib;dxguid.lib;%(AdditionalDependencies)

并且附加库目录行是(用于调试构建):

$(DXSDK_DIR)\Lib\;$(SolutionDir)\Debug;%(AdditionalLibraryDirectories)

(Library.lib 是我自己的库,存储在 $(SolutionDir)\Debug 文件夹中,或者 Release 版本的 Release 中,但这不是问题。)

DXSDK 目录包含 2 个子文件夹,x64 和 x86,并且文件存在于它们中,以及其他两个可以正常工作的库。(运行 Windows 7 64 位,所以应该使用第一个。)有什么想法吗?

4

2 回答 2

9

编辑: dinput8 和 d3d9 库可能已经在标准库中(它们太旧了),这就是为什么它以前有效。

目录

$(DXSDK_DIR)\Lib

不是一条完整的路径。它必须是

$(DXSDK_DIR)\Lib\x86

或者

$(DXSDK_DIR)\Lib\x64

取决于你的目标。

如果您正在为 32 位环境构建项目(转到配置管理器并检查确切的目标),请使用 x86 子目录,否则使用 x64。

于 2012-06-28T21:51:27.137 回答
0

您还应该注意,对于 Visual Studio Express 2008、2010 和 CodeBlocks,您需要位于附加库列表顶部的 DirectX 路径或任何可能调用的路径。使用带有奇怪符号的路径(虚拟路径,对吗?)以及直接浏览到 DirectX 安装中的路径。

如果您在 32 但机器上使用 Lib/x86,如果在 64 位上使用 Lib/x64。还要确保包含带有 DirectX 标头的 Include 目录。

不确定这是否会对您有所帮助,但如果您使用的是旧 DirectX 代码,这里是我的视频教程系列: http ://hi-techheadache.blogspot.com/p/using-old-source-code.html

它还将阐明我所说的一切,因为我向您展示了如何设置这些 IDE 以使用 DirectX。

于 2013-04-08T09:11:17.553 回答