2012-08-16 3 views
0

mingw32를 사용 중입니다. LPCTSTR에 대한 LPCTSTR의 유형 정의를 찾을 수 없습니다. 그러나 다음과 같이 mingw64에서 정의된다.LPCTSTR에서 LPWSTR 로의 변환이 winnt.h의 Mingw32에서 정의되지 않았습니다.

typedef LPCWSTR PCTSTR,LPCTSTR;

는 그러나 오류없이 내 코드 works fine in mingw32도 내 코드에서 LPCTSTR을 추가, 나는 컴파일러 옵션을 변경하면 나는 오류를 많이 얻고있다 mingw64 할 수 있습니다. mingw32에서

WINNT.H : mingw64에서

typedef TCHAR TBYTE,*PTCH,*PTBYTE; 
typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR; 
typedef const TCHAR *LPCTSTR; 

WINNT.H :

typedef LPWSTR LPTCH,PTCH; 
typedef LPWSTR PTSTR,LPTSTR; 
typedef LPCWSTR PCTSTR,LPCTSTR; 
typedef LPUWSTR PUTSTR,LPUTSTR; 
typedef LPCUWSTR PCUTSTR,LPCUTSTR; 
typedef LPWSTR LP; 

방법이 문제를 해결하기 위해? UNICODE가 정의 된 mingw32에서 오류가 발생하지 않는 이유는 무엇입니까?

+0

왜 mingw32에서 오류가 발생합니까? 'LPCTSTR'의 정의는 여러분이 게시 한 코드에 있습니다. 그리고 우리가 당신의 코드와 실제 에러를 보지 못한다면 mingw64에서 얻은 에러를 도울 수 없습니다 ... – interjay

+0

@interjay 제 의심은 LPCTSTR가 LPCWSTR로 typedef되어있는 것을 볼 수 있습니다. UNICODE가 Mingw64에 정의되어 있고 동일한 typedef가 Mingw32에 없습니다. – 2vision2

답변

2

LPCTSTR는 다음과 같이 mingw32에 정의되고 :

typedef const TCHAR *LPCTSTR; 

UNICODE가 정의되면, LPCWSTRLPCTSTR equivilent을 WCHARTCHAR지도.

UNICODELPCSTRLPCTSTR equivilent을 대신 CHAR에, TCHAR지도를 정의하지 않은 경우.

관련 문제