gpt4 book ai didi

c++ - 无法将 lpCmdLine 参数分配给 char* 指针

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:21 27 4
gpt4 key购买 nike

此代码检查运行应用程序此参数:

INT APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT iShow)
{

char* szCmdLine = lpCmdLine;

...
}

Error this lines : error C2440: 'initializing' cannot convert from 'LPTSTR' to 'char *'

最佳答案

这是因为考虑到项目 UNICODE 设置,LPTSTR 可能是 LPSTRLPWSTR。当启用 unicode 时,应用程序使用 LPWSTR,如果不是 LPSTR

LPSTR 只是 char* 的别名。 LPWSTR - wchar_t*LPTSTR 中的T 表示TCHAR 类型,定义可以是charwchar_t 任何UNICODE_UNICODE 符号已在您的项目中定义。

LP表示“长指针”,long是32位内存地址。 STR - 字符串。

那么让我们来描述 LPSTR - “指向 ANSI 字符串的长指针”; LPWSTR - “指向宽字符串的长指针”和 LPTSTR - “指向 TCHAR 字符串的长指针”。

WT 字母可以添加前缀 CLPCSTR, LPCTSTR, LPCWSTR 这意味着这些指针是常量,如 const char*const wchar_t*

因此您的代码必须如下所示:

INT APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT iShow)
{

TCHAR* szCmdLine = lpCmdLine;

...
}

INT APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT iShow)
{

LPTSTR szCmdLine = lpCmdLine;

...
}

关于c++ - 无法将 lpCmdLine 参数分配给 char* 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599009/

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