QStringおよびCスタイルの文字列の変換を制御するマクロ

1. QT_NO_CAST_FROM_ASCIIは、C言語スタイルの文字列またはポインタをUnicodeに自動変換することを禁止しています。

    char cc[] = "hello";
    QString str = cc;
    debug str;

    QString str2 = "hello";
    debug str2;

これが変換、C言語スタイルの文字ポインターです。

const char * p = "hello";

そして、C言語スタイルの文字列cc []をQStringに追加し、プロファイルに追加します。

DEFINES += QT_NO_CAST_FROM_ASCII

その後、そのような変換は禁止されます:

2. QT_RESTRICTED_CAST_FROM_ASCIIは配列変換を禁止し、ポインターをUnicodeに変換できるようにします。

3. QT_NO_CAST_TO_ASCIIは、QStringをC文字列に変換する操作を禁止します。QByteArray

の挿入操作は、QCharのtoAscii()を呼び出してQStringをC文字列に変換し、QByteArrayに挿入します。このマクロを有効にすると、この操作は禁止されます。同様に、QStringの追加、QStringの挿入、QStringの置換は禁止され、+ = QStringは禁止され、indexOf QStringは禁止され、lastIndexOfQStringは禁止されます。

おすすめ

転載: blog.csdn.net/kenfan1647/article/details/113827620