C++ 在哪里可以找到';winmm.lib';(我使用Visual Studio 2012)
我的操作系统是64位Windows 7。C++ 在哪里可以找到';winmm.lib';(我使用Visual Studio 2012),c++,visual-studio-2012,directx,winmm,C++,Visual Studio 2012,Directx,Winmm,我的操作系统是64位Windows 7。 我想在中构建DirectX示例 C:\ProgramFiles(x86)\Microsoft DirectX SDK(2010年6月)\Samples\C++\Direct3D10\Tutorials\Tutorial02。 但当我生成错误时,出现了致命错误 LNK1104:“winmm.lib”无法打开该文件 我重新安装了DirectSDK,但没有更改。我还将路径(include,lib)添加到设置中 如果从项目设置中删除“winmm.lib”,则无法
我想在中构建DirectX示例 C:\ProgramFiles(x86)\Microsoft DirectX SDK(2010年6月)\Samples\C++\Direct3D10\Tutorials\Tutorial02。 但当我生成错误时,出现了致命错误 LNK1104:“winmm.lib”无法打开该文件 我重新安装了DirectSDK,但没有更改。我还将路径(include,lib)添加到设置中 如果从项目设置中删除“winmm.lib”,则无法打开“comctl32.lib”。 属性>链接器>输入中已存在两个LIB
如何解决此问题?winmm.lib不是DirectX SDK的一部分,而是
最新的Windows SDK版本也进行了大量重组,但其中包含了您正在寻找的库。如果您试图使用VS 2012或VS 2013构建任何旧版DirectX SDK示例,则需要根据上页面底部的说明修改include/libs路径。最重要的更改是必须颠倒Include/Lib路径顺序: 对于VS 2010,它是:
$(DXSDK\u DIR)包括:$(包括路径)
$(DXSDK\u DIR)Lib\x86$(LibraryPath)
或$(DXSDK\u DIR)Lib\x64$(LibraryPath)
对于VS 2012/2013,必须:
$(包括路径)$(DXSDK_目录)包括
$(LibraryPath)$(DXSDK_DIR)Lib\x86
或$(LibraryPath)$(DXSDK_DIR)Lib\x64
当然,更好的选择是根本不花时间学习较旧的Direct3D 10 API,而是在上使用最新的Win32桌面教程。事实上,我已经在那里发布了许多旧版DirectX SDK示例,因此它们可以很好地与VS 2012/2013 Express for Windows Desktop和VS 2012/2013 Pro+配合使用,因为根本没有DirectX SDK
阅读以下博文:
并回顾这些CodePlex项目:
只需在stdafx.h中添加下面的行即可
#pragma comment(lib, "winmm.lib")
你在哪里加的路径?您是否检查了硬盘上是否存在winmm.lib?它应该位于
C:/winows/system32
将此路径添加到库路径中这些(两个)都是Windows SDK库:C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\Lib或更高版本。它肯定不会在C:/winows/system32
中。我在此文件夹中根本没有一个.Lib文件。可能您正在考虑.dll。LNK1104:'winmm.lib'无法打开该文件。
您是在混合使用x86\u 64和x86吗?请记住,您不能在32位应用程序中使用64位库,也不能在64位应用程序中使用32位库。启动使用winmm.dll函数的项目时,我收到了“LNK2028未解析令牌(0A00002D)extern C…”消息。如上所述,添加“#pragma comment…”以添加对winmm.lib的引用修复了该问题。