编译错误:unresolved external symbol
南墙太近 2014-10-19 12:47:02 调用了MSDN上在API,GetFirmwareEnvironmentVariable这个函数,编译报错如下:
error LNK2001: unresolved external symbol "unsigned long __cdecl GetFirmwareEnvironmentVariable(wchar_t const *,wchar_t const *,void *,unsigned long)" (?GetFirmwareEnvironmentVariable@@YAKPB_W0PAXK@Z)
#define UEFI_RUNTIME_VARIABLE_NAME L"UEFIDisplayInfo"
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID L"{9042a9de-23dc-4a38-96fb-7aded080516a}"
#define DEBUG_GOT_UEFI_VARIBLE_SUCCESS L"GOT THE UEFI VARIBLE SUCCESS"
#define DEBUG_GOT_UEFI_VARIBLE_FAIL L"GOT THE UEFI VARIBLE FAIL"
……
//不太懂C和C++,请问下面调用在方法在上面都要声明一下吗?这个函数是MSDN里面的函数。
DWORD WINAPI GetFirmwareEnvironmentVariable(
LPCTSTR lpName,
LPCTSTR lpGuid,
PVOID pBuffer,
DWORD nSize);
……
void testGetUEFIVariable() {
……
UCHAR Buffer[32];
DWORD dwRet = 0;
dwRet = GetFirmwareEnvironmentVariable(
UEFI_RUNTIME_VARIABLE_NAME,
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID,
Buffer,
sizeof(Buffer));
if (dwRet) {
OutputDebugString(DEBUG_GOT_UEFI_VARIBLE_SUCCESS);
} else {
OutputDebugString(DEBUG_GOT_UEFI_VARIBLE_FAIL);
}
……
}
……