0

out パラメータとして 1 つ (BSTR* ProfileXml) を渡すアプリケーションが 1 つあります。そのため、SysAllocString(Profile) を使用して割り当てた後にプロファイルを送信しています

WCHAR   Profile[] = 
L"<IhvSecurity xmlns=\"http://www.sampleihv.com/nwifi/profile\">"
L"<IHVSecurityParam2>parameter value</IHVSecurityParam2>"
L"</IhvSecurity>";

ほとんどすべてのASCII文字のパラメータ値で正常に動作します(STX ascii code 2 ETX ascii code 3などのC0コードを除く)。アプリケーションがエラーを送信し、有効なxmlバッファを要求するSTXまたはETXのいずれかを送信するとすぐに、IXMLDOMElementメソッドを使用して、プロファイルバッファをロードし、バッファを変更して、バッファを再度保存します。プロファイル文字列バッファのデフォルトのエンコーディングが utf - 8 であることは言及していません。

だから私はここで何か間違ったことをしている、またはxmlでSTX / ETXを使用できない??? MSMXL パーサーはそれらを解析できません。または、何らかの方法で/これをparam buffer is nodeに書き込むAPIがあります。

どんな助けでも本当に感謝します

ありがとう

4

1 に答える 1

1

そうです、XML1.0では制御文字を使用できません有効範囲の仕様を参照してください。XML 1.1はこれらの制御文字のサポートを追加しますが、MSXMLはXML1.1をサポートしていないと思います。

回避策として、ある種のエスケープスキームを実装し、もう一方の端でそれをデコードすることができます。

于 2012-03-14T20:34:44.240 に答える