나는 코드 :: 블록 10.05 레브 0 및 gcc 4.5.2 리눅스/유니 코드 64 비트 및 WxWidgets 버전 2.8.12.0-0
나는 간단한 문제가있다 :Cx + wxWidgets, 유니 코드 대 ASCII, 차이점은 무엇입니까?
#define _TT(x) wxT(x)
string file_procstatus;
file_procstatus.assign("/PATH/TO/FILE");
printf("%s",file_procstatus.c_str());
wxLogVerbose(_TT("%s"),file_procstatus.c_str());
Printf 출력 "/ PATH/TO/FILE "인 반면 wxLogVerbose는 쓰레기로 변합니다. std :: string을 wxString으로 변경하려면 다음을 수행해야합니다.
wxString buf;
buf = wxString::From8BitData(file_procstatus.c_str());
누군가가 잘못된 생각 일 수 있습니다. 왜 8 비트 데이터에서 변경해야합니까?
사용 wsString는 표준의 insted .. 그리고 항상 _TT를 사용하여 문자열이 해결책이 될 수도 있지만, 내가 모든 것을 변환해야 OS 기능 (너무 STL 함수)를 사용할 때 다음 문제가 온다 (별칭을 for wxT)는 꽤 짜증납니다. 그래서 아마 std :: string을 wxString으로 변환해야합니다. :) – ptrl4me
@ ptrl4me : wxString은 STL 함수에서 OK 여야한다고 생각합니다. 그리고 그것은'std :: string'이 OS 기능과 함께 더 이상 편리하지 않은 것처럼 보입니다. – UncleBens