• 本当は、田舎に庵を建てて隠遁生活したいけど、先立つものも無いので自宅で..。

C++でDLLを作成してみる

C++で作成されたDLLをC#でコントロールするソフトを作成しているけど、どうもイマイチしっくりこない。 基本的なことが解っていないためだと思うので、自前でDLLを作ってみて、それをC#でコントロールしてみようと思う。

C++は、40年以上前にPC-8001上で動くコンパイラで遊んで以来だから、ほぼ忘れている。

という訳で、簡単なコードを見よう見まねで書いてみた。

Visual Studio 2022を使った。

DLLのプロジェクトを立ち上げると、デフォルトでdllmain.cppとpch.cppとういソースファイルと、faramework.hとpch.hというヘッダファイルが生成される。

それはそのまま置いておいて、新たにヘッダファイルとソースファイルを作る。 今回は、DLLが作成できるかどうか試すだけなので、全くシンプルに関数一つだけにした。

int型の引数2つを加えて、答えをint型のポインタ変数に返すという単純な関数にした。 全然C++じゃないけど..。

これでbuildすると、プロジェクトのDebugホルダーにDll_Test_CPP.dllが作成された。

次に、C#のWindowsフォームアプリケーション(.NET Framework)プロジェクトを作成し、そのDebugホルダーに上で作成したDLLファイルをコピーした。

実行結果。 ちゃんと動作しているみたい。 

int型のポインタに対しては、参照渡しをしてやれば良い。

次回は、もう少し複雑なやつをやってみたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA