ошибка C2440: «возврат»: невозможно преобразовать из «char * const» в «LPCTSTR» - PullRequest
0 голосов
/ 10 марта 2019

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»

Это из игры.и как я могу это исправить?Я ищу в Google, но никто не работает

1 Ответ

0 голосов
/ 10 марта 2019

LPCTSTR - это «длинный указатель на постоянную строку TCHAR».

Тип TCHAR древний.Он восходит к первоначальному переходу от «ANSI» к «широкосимвольному» Unicode с Windows 98 / NT.

#ifdef _UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif

Большинство проектов в наши дни по умолчанию имеют значение _UNICODE, что означает, что TCHAR не являетсяchar но вместо этого wchar_t.

См. Что такое TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR (и т. Д.)?

Как правило, следует избегать использованияэти переносимые типы Windows и придерживаются стандартных типов C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...