此代码检查运行应用程序此参数:
INT APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPTSTR lpCmdLine, INT iShow)
{
char* szCmdLine = lpCmdLine;
...
}
错误此行:错误C2440:'初始化'无法从'LPTSTR'转换为'char *'
答案 0 :(得分:2)
因为LPSTR
可能是LPWSTR
或LPWSTR
考虑项目UNICODE设置。启用unicode时,应用程序使用LPSTR
,如果不是LPSTR
。
char*
只是LPWSTR
的别名。 wchar_t*
- T
。 LPTSTR
TCHAR
中的char
表示wchar_t
类型,UNICODE
或_UNICODE
在您的LP
或STR
符号中定义项目
LPSTR
表示“长指针”,长为32位内存地址。 LPWSTR
- 字符串。
所以让我们描述LPTSTR
- “指向ANSI字符串的长指针”; TCHAR
- “指向宽字符串的长指针”和W
- “指向T
字符串的长指针”。
C
或LPCSTR
可以添加前缀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;
...
}
。
所以你的代码必须如下:
{{1}}
或
{{1}}