GetProcAddress() 无法转换

问题描述 投票:0回答:1
WORD wOrdinal = IMAGE_ORDINAL(dwCThunk->u1.Ordinal);
if (!(lpApiLocalAddress = (LPVOID)GetProcAddress(
                hLocalLibrary,
                MAKEINTRESOURCE(wOrdinal)
)))
{
                printf_error("Error at GetProcAddress, code/msg = %s", GetLastErrorFormat());
                return FALSE;
};
sprintf_s(szApiInfo, "Ordinal %d", wOrdinal);

我收到一个未知错误,我不太确定如何解决它:

'FARPROC GetProcAddress(HMODULE,LPCSTR)':无法将参数 2 从 'LPWSTR' 转换为 'LPCSTR'

我尝试了

reinterpret_cast
',但似乎不起作用,是我做错了吗?

c++ winapi
1个回答
0
投票

GetProcAddress()
需要一个
const char*
但你给它一个
const wchar*
,因此出现错误。这是因为您正在使用
TCHAR
版本的
MAKEINTRESOURCE()
并针对 Unicode 编译项目。请改用 ANSI
MAKEINTRESOURCEA()
版本。

© www.soinside.com 2019 - 2024. All rights reserved.