kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

無理だろうけど、C++/CLIの自動マーシャリングの強化について

[id:kkamegawa:20091202:p1]にegtraさんからコメントいただきました。ありがとうございます。

そのhHandleへのポインタを渡したければ、Class1::Test内で、pin_ptr phHandle = &hHandle;と、確かpin_ptrに入れればHANDLE*を引数に取るOpenPrinterに渡せるようになると思います。refクラスのオブジェクトはGCによってメモリ上の位置が移動することがあるので、一時的にpin_ptrで固定しないといけないというわけです。

なるほど、確かにrefクラスのオブジェクト内ではマーシャリングが必要な理由ではありますが、「ヘッダファイルで宣言された(マーシャリングが必要な)変数が自動マーシャリングの対象にならない」という理由とはちょっと違うんじゃないかなと思います。というわけで、feedbackで一件登録してみました。よければvoteを…といっても、C++/CLIはWinForm同様もう強化されないんじゃないかなーとも思うのですが。
C++/CLIの自動マーシャリングを強化してほしい