c++ - Windows 8 : Desperate on how to link dsound

标签 c++ windows-8 cmake directx

我有一个项目,我需要在 Windows 8 中链接一些 DirectX 库。我不知道在哪里可以找到这些符号,如果是因为版本/运行时之间不匹配或任何地方或者到底发生了什么.

因此,我在 Windows 8.1 下(使用 cmake)链接了这些库:

set(MY_LIBS
    general dsound
    general d3d9
    general dxerr
    general strmiids
    general comctl32
    general winmm
    general pdh
    general ComDlg32
    general Gdi32
    general User32
    general Ole32
    general oleaut32
    general Msimg32
    general opengl32
    general glu32
    general PowrProf
    general strmbase)

如您所见,我包括strmbase,它是我自己编译的针对windows sdk 中的基类编译的示例。但我仍然有这些 Unresolved reference 资料:

 error LNK2019: unresolved external symbol _DirectSoundCaptureEnumerateW@8 referenced in...

 error LNK2019: unresolved external symbol _GetDeviceID@8 referenced in...

 error LNK2001: unresolved external symbol _GetDeviceID@8
 error LNK2019: unresolved external symbol _DirectSoundEnumerateW@8 referenced in...
 LNK2019: unresolved external symbol _DirectSoundCaptureCreate8@12 referenced in function... 
 error LNK2019: unresolved external symbol _DirectSoundCreate@12 referenced in function...

有没有人知道在哪里可以找到这些符号和/或如何编译它。

最佳答案

问题是有一个预编译库试图在 64 位库中找到这些符号。但是预编译库需要 32 位符号,因为名称修饰不同。当我链接到 32 位库时,问题就消失了,即使我的系统是 64 位。

关于c++ - Windows 8 : Desperate on how to link dsound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21980096/

相关文章:

c++ - 将 CMake 与同一语言的多个编译器一起使用

powershell - 来自 Powershell 的 MessageDialog

c++ - 我的 qmake 构建在调试构建中的速度是 cmake 的两倍多,为什么?

c++ - 为什么要有头文件和 .cpp 文件?

c++ - 我可以使用结构化绑定(bind)和 for-each 循环来迭代几个 “packed-together” 值吗?

c# - Tablet WPF Windows 桌面应用程序 - 滚动问题

c# - 在 Windows 8 上布局或分辨率发生变化时如何运行函数?

parallel-processing - 在make的并行执行中警告 "forced in submake"

c++ - 从 char 数组中读取空格分隔的数字以分隔 int(s)

android-ndk-profiler 对 monstartup 和 moncleanup 的 undefined reference