这个让我发疯。我已经尝试了我能想到的一切。以下是 DirectInput 代码的相关部分。
BOOL CALLBACK EnumDevicesCallback(const DIDEVICEINSTANCE* DeviceInfo, VOID* Context);
if(DirectInput8Interface == DI_OK)
{
DirectInput8InterfacePointer->EnumDevices(
DI8DEVCLASS_GAMECTRL,
(LPDIENUMDEVICESCALLBACKA) EnumDevicesCallback,
NULL,
DIEDFL_ATTACHEDONLY);
}
当我尝试编译时,出现错误:
在函数 _WinMain@16 中引用的未解析的外部符号“int __stdcall EnumDevicesCallback(struct DIDEVICEINSTANCEA const *,void *)”(?EnumDevicesCallback@@YGHPBUDIDEVICEINSTANCEA@@PAX@Z)。
可以看到,编译器找不到的外部符号与 EnumDevicesCallback 函数的 DIDEVICEINSTANCE 参数有关。那不应该,因为我已经包含了 dinput.h 并链接到 dinput8.lib 和 dxguid.lib。我什至尝试在我自己的代码中定义 DIDEVICEINSTANCE 并收到一条消息,它与以前的定义冲突。
该错误消息可能意味着什么?