我的操作系统是64位Windows 7 我想在中构建DirectX示例 C:\ Program Files(x86)\ Microsoft DirectX SDK(2010年6月)\ Samples \ C ++ \ Direct3D10 \ Tutorials \ Tutorial02。 但是当我构建错误时发生致命错误
LNK1104:'winmm.lib'无法打开文件。
我重新安装了Direct SDK,但没有变化。我还在路径中添加了路径(include,lib)。
如果我从项目设置中删除'winmm.lib',则无法打开'comctl32.lib'。 两个库已经存在于属性>链接器>输入。
我该如何解决这个问题?
答案 0 :(得分:2)
winmm.lib
不是DirectX SDK的一部分,但是Windows SDK的一部分。
最新的Windows SDK版本也进行了大量重组,但它包含了您正在寻找的库。
答案 1 :(得分:2)
将下面的行放在stdafx.h
中#pragma comment(lib, "winmm.lib")
答案 2 :(得分:1)
如果您尝试使用VS 2012或VS 2013构建任何旧版DirectX SDK示例,则需要根据MSDN页面底部的说明修改include / libs路径。最重要的变化是您必须反转Include / Lib路径顺序:
对于VS 2010,它是:
$(DXSDK_DIR)Include;$(IncludePath)
$(DXSDK_DIR)Lib\x86;$(LibraryPath)
或$(DXSDK_DIR)Lib\x64;$(LibraryPath)
对于VS 2012/2013,它必须是:
$(IncludePath);$(DXSDK_DIR)Include
$(LibraryPath);$(DXSDK_DIR)Lib\x86
或$(LibraryPath);$(DXSDK_DIR)Lib\x64
当然,更好的选择是不花时间学习旧的Direct3D 10 API,并在Direct3D 11上使用最新的MSDN Code Gallery Win32桌面教程。事实上,我已经在那里发布了许多传统的DirectX SDK示例,因此它们可以在VS 2012/2013 Express for Windows Desktop和VS 2012/2013 Pro + as-is中完美地工作,而不需要DirectX SDK。
阅读这些博文:
并查看这些CodePlex项目: