0

これは、通常のwchar_t配列と比較できない奇妙な記号が付いたchar配列です。

配列の先頭でこの奇妙な記号が発生する原因は何ですか?

Unicode文字とマルチバイト文字セットで発生します。それは私がそれを別のアレイと比較することができないようにしています。

編集:「Unicode文字列c ++の比較」を調査したとき、Googleは私に何も与えませんでした。

また、wchar_tsで発生した歴史的な奇妙なシンボルも調べましたが、それらもまばらです。

編集:Visual Studio 2010、Windows 7、コードを表示できません。これは、構造化ストレージのファイルストリーム名の一部です。

私は私ができるすべての情報を与えました。構造化ストレージファイルを開いて列挙しています。そのストリームが列挙されると、そのwchar_t配列がpwcsName値になります。「SummaryInformation」と比較する方法を探しています。そのシンボルは邪魔です。

私が考えた解決策は、配列の2番目の文字から始まる部分文字列を作成することですが、それを実行する方法がわかりません。

4

2 に答える 2

1

WindowsStructuredStorageについてはこちらをご覧ください。

http://msdn.microsoft.com/en-gb/library/windows/desktop/aa380020(v=vs.85).aspx

特に、名前パラメータ:-

新しく作成されたストリームの名前を含む、ワイド文字のnullで終了するUnicode文字列へのポインタ。この名前は、後でストリームを開いたり再度開いたりするために使用できます。名前の長さは、文字列ターミネータを除いて31文字を超えてはなりません。ストリーム/ストレージ名の最初の文字として機能する000から01fの文字は、OLEで使用するために予約されています。これは複合ファイルの制限であり、構造化ストレージの制限ではありません。

つまり、これは何らかの形で予約されたOLE名です。しかし、私はあなたをもっと助けるための構造化ストレージについて十分に知りません。

于 2013-02-08T18:00:18.490 に答える
0

その記号は、選択したフォントにグリフがないコードポイントを表示するために使用されます。たとえば、コードポイントが印刷できない場合や、デバッガーが使用しているフォントに含まれていない言語の文字である場合があります。

ここからコードポイントが実際に何であるかを言うことは不可能です。いくつかの診断コードを作成するか、デバッガーで検査して、それが実際に何であるかを確認する必要があります。

問題を解決するには、これらの文字列がどこから来ているかを追跡する必要があります。そして、あなたが間違っていることを見つけるために見てください。これは、コード内の1つずつのエラーのように見えます。言い換えると、文字列は、コードが想定しているよりも実際に1文字遅れて開始する可能性があります。

于 2013-02-08T17:43:59.003 に答える