SSブログ
サイト移しました 書いてた記事も結構移してます こちらからどうぞ







C#2010でVC++2010で作ったDLLを使う-その3-  [備忘録]



スポンサードリンク







こんにちは菊月です。

今回は、時間が空いてしまいましたが
C#2010でVC++2010で作ったDLLを使うシリーズ?
DLL内で関すが増えた場合についてお話ししたいとおもいます。

以前の記事はこちら

Part1
http://umengine.blog.so-net.ne.jp/2014-08-31
Part2
http://umengine.blog.so-net.ne.jp/2014-09-01

 PC :DELL XPS M1530
 OS :Windows Vista
 CPU :intel
 Other :Visual C++ 2010 Express
   Visual C# 2010 Express
   OpenCV 2.2
   OpenCVSharp 2.2(念のため)


実は関数が増えた場合は簡単です。
なんとDEFファイルの
「EXPORTS」の後に作成した関数名を列挙すれば良いだけです!

例えば2つの引数の和を計算しその結果を返す
「int Add(int a, int b)」という関数を加えた場合、
以前の記事に書いたプログラムを
次のようにすれば良いです


・CPPファイル(DLLのメインとなるファイル)
----------------------------------------------------------------------
#include "stdio.h"

__declspec (dllexport) void __stdcall FileWrite(){
FILE *fp;
fp = fopen("Test.txt","w");
fprintf(fp,"DLL file test\n");
fclose(fp);
}

__declspec (dllexport) int __stdcall Add(int a,int b){
int Sum;
Sum = a + b;
return(Sum);
}

----------------------------------------------------------------------

・DEFファイル(関数を追加するだけ)
----------------------------------------------------
LIBRARY "DLLTESTFILE"

EXPORTS
FileWrite
Add
--------------------------------------------------

・CSファイル(C#のソースファイル)
-------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

//これを追加することでDLLのインポートができる
using System.Runtime.InteropServices;

namespace DllTestCsharp{
public partial class Form1 : Form
{
[DllImport("DllTestFile.dll")]
public static extern vodi FileWrite();

[DllImport("DllTestFile.dll")]
public static extern int Add(int a,int b);
public Form1()
{
InitializeComponent();
}
private void button1_Click
(object sender, EventArgs e)
{
int Sum;
int a = 1,b = 3;
Sum = Add();
FileWrite();
}
}
}

そのうち画像処理関係で
プログラムとか書いてみようと思います。

ではまた会いましょう。


スポンサードリンク



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました




QLOOKアクセス解析

  
  
  
  

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。