0

QStringXMLCh const *Xerces-C++ で使用できるように変換したいと考えています。

前者はconst ushort *、(私が思うに) O(1) 時間で、ホストのバイト順で NUL 終端に「変換」できます。後者も UTF-16 文字列ですが、どのバイト順かはわかりません。

以前にこの問題に取り組んだ人はいますか? 文字列のコピーをたくさんするのは気が進まない。

4

2 に答える 2

0

多分:

const XMLCh* QtoX(const QString& s) { return (s.utf16()); }
QString XtoQ(const XMLCh* x) { return QString::fromUtf16(x); }

ここから?私はこれについて個人的な経験はありません。

于 2011-01-17T15:03:13.567 に答える
-2
QString->XMLCh*  QString::toWCharArray(XMLCh* buffer)
XMLCh->QString   QString::fromWCharArray(x)

XMLCh にメモリを割り当てます。

XMLCh* QString2X(QString _w, MemoryManager *mm =
                 XMLPlatformUtils::fgMemoryManager) {
   XMLCh b[256];
   _w.toWCharArray(b);
   XMLCh* _x = (XMLCh*) mm->allocate((XMLString::stringLen(b)+1)*sizeof(XMLCh));  
   XMLString::copyString(_x, b);
   return _x; 
}
于 2015-12-11T10:32:09.037 に答える