我有一个项目,我需要在 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 位。
我是一名优秀的程序员,十分优秀!