タグ

ブックマーク / www.84kure.com (2)

  • [C#] C++からC#のDLLを呼ぶ方法 – 端くれプログラマの備忘録

    以前のエントリで「C#からC++のDLLを呼ぶ方法」を書いた。今回はその逆で「C++からC#のDLL関数を呼ぶ方法」を考える。 これが必要になるのは次のようなシチュエーション。C++で書かれたアプリがあり、今回そのアプリに機能を追加したい。もちろんC++で地道にコーディングすれば機能は追加できるけど工数は多くなる。C#と.NETを使えば工数が少なくなるのは明らかなので、今更C++でコーディングするのはだるい。サクサクっとC#でコーディングして、それをC++から呼べると楽だよね? 方法としては、C++からC#のDLLを直接呼ぶことはできないので、C#で作成したCOMをC++から呼ぶことになる。以下にテストコードを示す。 テストDLL (C#) のソース DLLを作成するために、Visual C#で「クラスライブラリ」としてプロジェクトを作成する。 using System; using Sy

    nokoribi
    nokoribi 2016/09/11
  • [C#] C#からC++のDLLを呼ぶ方法 – 端くれプログラマの備忘録

    最近は新規Windowsアプリ開発はC#でやるようになった。だけど、「既存のC/C++ライブラリ使い回す代わりに工数減らして」と発注元から要求されたり、サードパーティから購入したC言語DLLの商用ライブラリをリンクしないといけなかったりと、いまだにC/C++との連携は避けられない。 というわけで、C#からC/C++のDLL関数を呼び出す手順を覚え書きとして記しておく。 サンプルコード 以下のような簡単なテスト関数をC++で書いてDLLをビルドした。このDLLの関数をC#のテストアプリから呼び出してみる。 #include "stdafx.h" #include <stdio.h> #include <string.h> #include "CppDLL.h" extern "C" { // No argument CPPDLL_API int func1() { return 11; }

    nokoribi
    nokoribi 2016/09/11
  • 1