C#からC++のdllを使う方法

最終更新日26 Jun 2017 06:25

GUIはC#で作ってレンダリングをC++でしたい

プロジェクト立ち上げ

  • 自作dllの作り方でC++のプロジェクトを立ち上げる
  • 次にC#のプロジェクトを立ち上げる。C++の.slnよりも下階層の場所に立ち上げておく。

プロジェクトの設定

  • C#の方のプロジェクトをスタートアッププロジェクトに設定する
  • ビルドしたdllがC#の.exeと同じ階層になるように出力ディレクトリの設定を変える
  • C#の方のソリューションを右クリック→プロパティ->デバッグ->ネイティブコードデバッグを有効にする

dllの方でもブレークポイントで止めることができるようになる。

[DllImport("C++で作ったdllファイルの名前.dll", CallingConvention = CallingConvention.Cdecl)]
 public static extern int C++で作った関数の名前();

C++側
.cpp
extern HRESULT __cdecl Init(){
   //処理の内容
}

.h
extern "C" {
    __declspec(dllexport) HRESULT __cdecl Init();
}

開発の流れ

  • Ctrl+Shift+Bでビルド(これをしないとdllの方がビルドされない)
  • F5で実行

の繰り返し。

GUIからパラメータ受け取る関数はexportする

サンプルプロジェクト

CSharpCppDLL.zip

Bibliography

c-sharp dll wpf


ファイル

サポートサイト Wikidot.com c-sharpdllwpf