5

データを「エンコード」するためにバイトを組み合わせる方法だけですか?

RCWが自動的に.NET文字列を取得し、それをCOMBSTRに変換する方法を知りたいのですが。.NET文字列から変換された有効なCOMBSTRを形成するだけだと思います。

関連:.NETのバイトタイプを使用して独自の有効なBSTRを構築できますか?

4

1 に答える 1

9

2つの文字列タイプはまったく関係ありません。あるタイプを別のタイプに変換するには、変換が発生する必要があります。

BSTRには、SysAllocString *を介して割り当てられ、SysFreeStringで割り当て解除され、長さのプレフィックスがあり、2つのヌル文字のターミネータが含まれるなど、従う必要のあるいくつかの規則があります。

http://msdn.microsoft.com/en-us/library/ms221069.aspx

.Net文字列は、マネージヒープを介して割り当てられるマネージタイプです。その存続期間は、CLRガベージコレクターによって管理されます。

独自のBSTRを作成するには、Marshal.StringToBSTRを使用する方がはるかに優れています。

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.stringtobstr.aspx

それでも不十分な場合は、SysAllocStringをピンボークできます。

http://msdn.microsoft.com/en-us/library/ms221458.aspx

于 2011-06-21T00:39:54.383 に答える