Этот человек меня заводит. Я пробовал все, что мог придумать. Вот соответствующие части кода DirectInput.DirectInput Unresolved External Symbol
BOOL CALLBACK EnumDevicesCallback(const DIDEVICEINSTANCE* DeviceInfo, VOID* Context);
if(DirectInput8Interface == DI_OK)
{
DirectInput8InterfacePointer->EnumDevices(
DI8DEVCLASS_GAMECTRL,
(LPDIENUMDEVICESCALLBACKA) EnumDevicesCallback,
NULL,
DIEDFL_ATTACHEDONLY);
}
Когда я пытаюсь скомпилировать, я получаю ошибку:
unresolved external symbol "int __stdcall EnumDevicesCallback(struct DIDEVICEINSTANCEA const *,void *)" ([email protected]@[email protected]@[email protected]) referenced in function [email protected]
Как вы можете видеть, внешний символ компилятор не может найти связан с параметром DIDEVICEINSTANCE функции EnumDevicesCallback. Этого не должно быть, потому что я включил dinput.h и связался с dinput8.lib и dxguid.lib. Я даже попытался определить DIDEVICEINSTANCE в своем собственном коде и получил сообщение о том, что оно противоречило предыдущему определению.
Что может означать это сообщение об ошибке?
Вы используете компилятор C или C++? Они не одинаковы. –
Возможная дубликация [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-how-do-i-fix) –
Вы уверены, что предоставили определение функции 'BOOL CALLBACK EnumDevicesCallback (const DIDEVICEINSTANCE * DeviceInfo, VOID * Context);' в вашей программе? –