QString 및 C 스타일 문자열의 변환을 제어하는 매크로

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은 금지됩니다.

추천

출처blog.csdn.net/kenfan1647/article/details/113827620