1. QT_NO_CAST_FROM_ASCII 는 C 언어 스타일 문자열 또는 포인터를 유니 코드로 자동 변환하는 것을 금지합니다.
char cc[] = "hello";
QString str = cc;
debug str;
QString str2 = "hello";
debug str2;
다음은 C 언어 스타일 문자 포인터 인 변환입니다.
const char * p = "hello";
그리고 C 언어 스타일 문자열 cc []를 QString에 추가하고 pro 파일에 추가합니다.
DEFINES += QT_NO_CAST_FROM_ASCII
그 이후에는 이러한 변환이 금지됩니다.
2. QT_RESTRICTED_CAST_FROM_ASCII 는 배열 변환을 금지하고 포인터를 유니 코드로 변환 할 수 있도록합니다.
3. QT_NO_CAST_TO_ASCII 는 QString을 C 문자열로 변환하는 작업을 금지합니다.
QByteArray의 삽입 작업은 QChar의 toAscii ()를 호출하여 QString을 C 문자열로 변환하여 QByteArray에 삽입합니다.이 매크로가 활성화 된 후에는이 작업이 금지됩니다. 마찬가지로 QString 추가, QString 삽입, QString 바꾸기는 금지되고 + = QString은 금지되고 indexOf QString은 금지되며 lastIndexOf QString은 금지됩니다.