【问题标题】:'HMODULE GetModuleHandleW(LPCWSTR)': cannot convert argument 1 from 'const char *' to 'LPCWSTR''HMODULE GetModuleHandleW(LPCWSTR)':无法将参数 1 从 'const char *' 转换为 'LPCWSTR'
【发布时间】:2016-07-06 19:14:26
【问题描述】:

我对 C++ 还是很陌生,但我遇到了一个我无法解决的问题,这是我的错误消息:

'HMODULE GetModuleHandleW(LPCWSTR)': 无法将参数 1 从 'const char *' 转换为 'LPCWSTR'

这是抛出错误的那一行:

        ModuleHandle = (DWORD)GetModuleHandle(moduleName.c_str());

【问题讨论】:

  • 您发送的值无效
  • 使用std::wstring moduleName = L"foo";
  • 您希望您的程序是 ASCII,但项目设置是 UNICODE。如果您将项目更改为不使用 UNICODE,那么您编写的内容将起作用。

标签: c++


【解决方案1】:

您将char * 传递给需要wchar_t * 的东西。您必须将您的字符串类型转换为 wchar_t *,例如使用 MultiByteToWideChar 函数 (https://msdn.microsoft.com/en-us/library/windows/desktop/dd319072%28v=vs.85%29.aspx),或者您可以通过调用 GetModuleHandleA() 而不是 GetModuleHandleW() 来使用 GetModuleHandle 的非宽版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-25
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2017-03-31
    • 2018-06-08
    相关资源
    最近更新 更多