C# から C++/CLI 経由で C++ を使ってみる。
最近何かとやりたいことが多いせいか、どうにも気が散っていけない気がする。
まぁいいや。
手許で軽く実験してたので、軽くメモがてら。
レイヤ構造をちゃんと確認できるフリーの Photoshop ビューアって、
ざっと探してみたんだけど、なかなか見つからない。。
ので、つくってみることにしたんだけど、そこで嵌ったメモ。
ファイルは ここ 。
まず試したのは C# と C++/CLI のプロジェクトをつくって、
C# から C++/CLI でつくった dll を呼び出す方法。
とはいえ C++/CLI は詳しくないし、
インターフェイスだけあわせて marchal_as
こんなかんじ。
void hoge(String^ s) { std::string ss = msclr::interop::marshal_as<std::string>(s);
で、途中までやってみて気付いたんだけど、これ、デバッグできない。。
構造体の中身がみれないってどういうこと……。
仕方ないから、C++/CLI の dll から更に C++ の lib を呼び出すことにした。
同じソリューション内に lib プロジェクトをつくっちゃうと
やっぱり同じようにデバッグできないから、別プロジェクトで。
そうすると今度は C# (C++/CLI) 側から C++ の中身をデバッグできなくなったから、
両方を行き来するのに、C++ 側は lib とは別に、同じソースコードを参照する
デバッグ用の exe プロジェクトを用意することになった。
めんどくさいなぁ。。