0

このような BSTR (Windows では UTF-16) を記述する従来の C++ COM アプリケーションがあります。

たとえば、☻ (Black Smiley、つまり ALT + Numpad 2) は060000003B260D000A00、アプリケーションによって HEX で次のように記述されます。最初の 4 バイトはBSTR の長さのために予約されていることに注意してください

C#さて、この HEX 文字列から黒のスマイリーを表示するにはどうすればよいでしょうか? VS デバッガーで'\u263B'はスマイリーが表示されますが、ここでは文字列は3B26. これは、データの種類のほんの一例です。そのアプリは、任意のデータをダンプできます (大きな XSL、テキストなど - すべて HEX 形式に変換されます)。アイデアは、C# で HEX を正しく解釈することです。

このリンクは似たようなことを話しますが、よくわかりません。ポインタはありますか?

ここに画像の説明を入力

4

1 に答える 1

0

BSTR からMarshal.PtrToStringBSTRマネージのインスタンスを取得するために使用します。String

IntPtr引数は、文字列の長さをエンコードする 4 バイトの先頭ではなく、文字列の文字自体の先頭へのポインタである必要があること に注意してください。

于 2013-04-15T23:29:30.560 に答える