C++/CLIとアンマネージとの連携が面倒すぎる

.NET FrameworkからWin32APIを叩くのが面倒すぎる。

いちおうC++/CLIを使ってネイティブAPIをラップするクラスを作っているのだけど、まともにマネージ型との型変換を考えると面倒で…。String型からchar*の配列にするのもすんなりできないっぽい*1し、ネイティブのGUID型とマネージのGuid型とやりとりする仕組みもないし、バイナリデータを扱うのでネイティブのbyte配列をどう扱えばいいかというのもあるし…

.NET Framework上だけで全ての事が済めば苦労しないんだろうけど、実際はネイティブのAPIでしかできないこともまだまだあるし、既存のC/C++のコードを読んだりするシチュエーションはあるからなぁ。

たしかにC#とかからマーシャリングの定義をいちいち書くのに比べればC++/CLIのほうが柔軟性はあるんだろうけど…。最近、このへんの相互変換でハマりまくっているので愚痴。まぁ私のスキルも全然足りてないんだけれど。

  • *1: pin_ptr使えばいいのかな…

コメント

タイトルとURLをコピーしました