struct StaticString
{
StaticString() { Str = NULL; }
~StaticString() { if(Str) delete [] Str; Str=0; }
char* Str;
void operator = (const char * pchar)
{
Str = new char[strlen(pchar)+1];
strcpy(Str,pchar);
}
operator LPCTSTR() const
{
return Str;
}
operator PCHAR() const
{
return Str;
}
};
错误C2440:“返回”:无法从“ char * const”转换为“ LPCTSTR”
来自游戏。我该如何解决?我在谷歌搜索,但没有人工作
答案 0 :(得分:0)
LPCTSTR
是“指向常量TCHAR字符串的长指针”。
TCHAR
类型很古老。它可以追溯到Windows 98 / NT从“ ANSI”到“宽字符” Unicode的原始过渡。
#ifdef _UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
这几天大多数项目默认为_UNICODE
,这意味着TCHAR
不是char
,而是wchar_t
。
请参见What are TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR (etc.)?
通常,您应该避免使用这些Windows可移植类型,并坚持使用C ++标准类型。