VS C++C#ハイブリッドプログラミング

1801 ワード


C++DLLの作成
32 bitと64 bitは互換性がありません
  • 一般dllエンジニアリング
  • の作成
  • Properties->Configuration Properties->General->Project Defaults->Common Language Runtime Support=[Common Language Runtime Support(/clr)]
  • を設定する
  • turnoff「/permissive-」:Properties->Configuration Properties->C/C+->Language->Conformance mode=No
  • debug|release設定を変更すると、Propertiesも変更を忘れないでください.

  •  
    管理クラスでBitmapクラスを使用する場合は、参照を追加する必要があります.現在のプロジェクト->Add(追加)参照->Assemblies(プログラムセット)->Framework(フレームワーク)->Systemをチェックします.Drawingでは、管理C++でBitmapクラスを呼び出すことができます.
     
    System::Drawing::Bitmap ^clrClass::getImage(double scale)
    {
        System::Drawing::Bitmap ^img = gcnew System::Drawing::Bitmap(5,5);
        img->SetPixel(1,1, System::Drawing::Color::FromArgb(255,0,0));
        return img;
    }

    C#で呼び出す
    参照DLL:エンジニアリング->References->Add References->Browse->[Browse]->C++エンジニアリング生成DLLの追加
    普通に使えばいいですが、典型的には以下のように使います.
    clrClass cc = new clrClass();
    //       C#      

    注意:C++エンジニアリングのdllが他のdllを参照している場合は、二次参照のdllをbinフォルダの下の対応する位置に手動で追加する必要があります.
    転載先:https://www.cnblogs.com/xbit/p/9597938.html