如何在C#中使用C/C++寫的DLL。舉例說明:
建立VC工程DllDemo,建立的時候選擇MFC AppWizard(dll),選擇Regular Dll using shared MFC Dll或者MFC Extension Dll。
現在可以寫一個函數代碼,在DllDemo.cpp文件中添加這些代碼。也可以使用新的文件添加代碼;
extern “C“ __declspec(dllexport) int Add(int a,int b)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
TRACE("Entering DllAdd/n");
return a+b;
}
編譯工程。
下面建立一個C#的WinForm程序測試DllDemo:
啓動vs.net IDE,建立新的C#工程,選擇WinForm應用程序。
在Form1.cs中添加引用:using System.Runtime.InteropServices;
在pulic class Form1聲明的開頭添加代碼:
[DllImport("MotorControlDll.dll",EntryPoint="Add",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
public static extern int Add(int a,int b);
至於DllImport屬性的用法可以察看MSDN,對於各項參數有詳細的說明。
最後還要記得將DllDemo生成的位於Debug文件中DllDemo.dll文件加入到C#的WinForm程序的bin目錄下。
這樣就可以直接使用Add(int a,int b)函數。