C#GUI+C++/CLI

最終更新日28 Jun 2017 05:21

描画部分をcppで書いて
GUIをWPFで書きたい。
WPFで書くためにはC#ソリューションである必要があるようだ。

C#->WPFアプリでプロジェクトの作成

startwpf.png

作ったC#プロジェクトの中でC++ソリューションを追加

  1. ソリューションエクスプローラー右クリック
  2. 追加→新しいプロジェクトの追加
  3. CLRクラスライブラリを選ぶ
clr-class-library.png
するとソリューションエクスプローラーがこんなかんじにC++とC#のソリューションができました
solution-explorer.png

「新しいソリューションプラットフォームを作成する」をチェックするとまたソリューションが増えちゃうらしいのでチェックは外す

GUI部品の値をC++/CLIに渡す

C++/CLIにpublic関数を書く。

文字列を渡す場合

C++/CLI側

void receiveFbxFilePath(String ^fbxFilePath)
{
    System::Console::WriteLine(fbxFilePath);    
}

[2]]より
C#では普通のstringを渡す
System::String^ をstd::stringに変換する方法
#include <msclr\marshal_cppstd.h>//String^->std::string変換
System::String^ managedString = "test";
    msclr::interop::marshal_context context;
    std::string standardString = context.marshal_as<std::string>(managedString);

[3]より

c-sharp csharp-dll directx


ファイル

サポートサイト Wikidot.com c-sharpcsharp-dlldirectx