gpt4 book ai didi

c++ - 视觉 C++ :error C2664: 'GetModuleFileNameW' : cannot convert parameter 2 from 'char [260]' to 'LPWCH'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:44 24 4
gpt4 key购买 nike

当我尝试编译我的项目时,我遇到了一些我无法解决的错误。无论如何这是代码之一:

public:
void Init(HMODULE hModule, string Filename)
{
char szLoc[ MAX_PATH ];
GetModuleFileName(hModule, szLoc, sizeof( szLoc ) );
char* dwLetterAddress = strrchr( szLoc, '\\' );
*( dwLetterAddress + 1 ) = 0;
strcat( szLoc, Filename.c_str() );
__OutStream.open( szLoc, ios::app);
}

错误是:

error C2664: 'GetModuleFileNameW' : cannot convert parameter 2 from 'char [260]' to 'LPWCH'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

感谢您的帮助.. 问候,Messer

最佳答案

Windows API 的许多“函数”实际上是函数的 ANSI(A)或 Unicode(W 表示宽)版本的宏。根据您的项目设置,这些宏将是 DoSomeFunctionADoSomeFunctionW当你想调用DoSomeFunction .可移植的方法是使用 TCHAR因为它被定义为 char对于 ANSI 和 wchar_t用于 Unicode。

如果您不想使用 Unicode 进行编译,您可以将项目设置更改为 Project Properties -> Configuration Properties -> General -> Character Set -> Use Multibyte Character Set .

如果你确实想用 Unicode 编译,那么你应该附加一个 A (例如:GetModuleFileNameA)到必要的函数名称。

关于c++ - 视觉 C++ :error C2664: 'GetModuleFileNameW' : cannot convert parameter 2 from 'char [260]' to 'LPWCH' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com