문제

_TCHAR* strGroupName = NULL;
const _TCHAR* strTempName = NULL;

//Assign some value to strTempName

strGroupName = _tcschr(strTempName, 92) //C2440

VS2008 에서이 코드를 컴파일하는 동안 위 줄에서 오류가 발생합니다. VC6에서는 잘 컴파일합니다.

오류 C2440 : '=': 'const wchar_t *'에서 '_tchar *'로 변환 할 수 없습니다.

문제는 무엇이며 어떻게 해결해야합니까?

도움이 되었습니까?

해결책

캐스팅 해보세요

strGroupName = (_TCHAR*)_tcschr(strTempName, 92);

vs2008이 유형 캐스트에 대해 조금 더 엄격 해졌고 어떤 경우에는 자동으로 수행하지 않을 것 같습니다.

다른 팁

strGroupName = const_cast<_TCHAR*>( _tcschr(strTempName, 92));

이는 사용중인 함수의 변형이 입력으로 const _tchar*를 가지고 있고 const _tchar*를 반환하기 때문입니다.

또 다른 변형은 strtempname이 const _tchar*가 아닌 _tchar*로 선언하는 것입니다. 이 경우 _TCHAR* 매개 변수를 갖고 _TCHAR* 값을 반환하는 변형 함수가 사용됩니다.

strGroupName 또한 포인터 여야합니다 const.

const _TCHAR* strGroupName = _tcschr(strTempName, 92);

초기화를 요청할 때까지 선언 할 필요가 없습니다.

_tcschr Const 포인터를 반환하고 있습니다. 따라서 반환 값은이어야합니다 const _TCHAR* strGroupName = NULL; strgroupName을 const 포인터로 변경할 수 없다면 두 포인터를 두 가지 포인터를 비 초보 포인터로 선언하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top