错误 C2664 “HMODULE GetModuleHandleW(LPCWSTR)”: 无法将参数 1 从“const char [9]”转换为“LPCWSTR”

win32控制台程序

1.当使用函数GetModuleHandle函数时遇到错误

	HMODULE hKernel32 = GetModuleHandle("kernel32");

2.查了一下GetModuleHandle函数

错误 C2664 “HMODULE GetModuleHandleW(LPCWSTR)”: 无法将参数 1 从“const char [9]”转换为“LPCWSTR”_第1张图片

查了一圈 https://blog.csdn.net/liyuanbhu/article/details/46834549  这位老哥的方法并没有解决问题

3.正确解决办法

这是Windows开发的函数命名规则,unicode版本的函数在函数名后加W,ansi则加A。所以你只需要在你的参数字符串前加L就可以了。

	HMODULE hKernel32 = GetModuleHandle(L"kernel32");

更好的方法是使用自适配版本,即LoadLibrary,字符串参数改为_T($YOUR_STRING$),_T()是一个宏,当程序定义为unicode时,相当于L,当程序定义为ansi时,则被忽略。

你可能感兴趣的:(C++)