マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

マイクロソフト技術書では、

における「データ変換」を指していることが多い。

である。

相互運用マーシャリング

マネージコード・アンマネージドコード間のデータ変換のこと。

C/C++と.NETでは当然メモリ上のデータの表現が異なる。

例えば、.NETでは、

なので、マネージコード・アンマネージドコード間のデータ変換が必要になる。

プリミティブ型のマーシャリング

マネージ(.NET)からアンマネージ(C/C++)のDLLやCOMを呼び出す場合、
相互運用マーシャラーによって、マネージコード・アンマネージドコード間のデータが変換される。

構造体のマーシャリング

Marshalクラスを使用して構造体のマーシャリングが可能。

構造体配列、構造体配列配列、構造体配列の階層構造など。

構造体配列のマーシャリングを行う場合は、
要素数などは別途引数などを用意して把握できるようにしておく必要がある。

オブジェクトのマーシャリング

COM

COMを使用したイン・プロセス呼び出し

生成済みのSTACOMコンポーネントのポインタを使用して
マルチスレッド・クライアントから呼び出した場合、
Windwosメッセージキューによって呼び出しが直列化される。

これもマーシャリングの一種である。

COMを使用した別・プロセス呼び出し

ローカル・プロセスの引数・戻り値のデータをリモート・プロセスにコピーする。

DCOMを使用したリモート・サーバ呼び出し

ローカル・プロセスの引数・戻り値のデータをリモート・サーバのプロセスにコピーする。

カスタムマーシャリング

COMのカスタムマーシャリングを説明にするには、
ADODB.Recordsetのマーシャリングなどが良いサンプルになる。

また、カスタムマーシャリングを相互運用(マネージ型を COM に公開する)で使用することも可能。

参考


Tags: :Windows, :プログラミング, :.NET開発


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS