我在哪里可以找到' winmm.lib' (我使用的是Visual Studio 2012)

时间:2014-11-05 16:20:21

标签: c++ visual-studio-2012 directx winmm

我的操作系统是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'。 两个库已经存在于属性>链接器>输入。

我该如何解决这个问题?

3 个答案:

答案 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。

阅读这些博文:

DirectX SDK Samples Catalog

DirectX SDK Tools Catalog

Living without D3DX

DirectX SDKs of a certain age

并查看这些CodePlex项目:

DirectX Tool Kit

DirectXMesh

DirectXTex

DXUT for Direct3D 11

Effects 11