一 VC調用DLL
靜態調用:
- 把你的youApp.DLL拷到你目標工程(需調用youApp.DLL的工程)的Debug目錄下;
- 把你的youApp.lib拷到你目標工程(需調用youApp.DLL的工程)目錄下;
- 把你的youApp.h(包含輸出函數的定義)拷到你目標工程(需調用youApp.DLL的工程)目
- 錄下;
- 打開你的目標工程選中工程,選擇Visual C++的Project主菜單的Settings菜單;
- 執行第4步後,VC將會彈出一個對話框,在對話框的多頁顯示控件中選擇Link頁。然
- 後在Object/library modules輸入框中輸入:youApp.lib
- 選擇你的目標工程Head Files加入:youApp.h文件;
- 最後在你目標工程(*.cpp,需要調用DLL中的函數)中包含你的:#include "youApp.h"
動態調用:
動態調用時只需做靜態調用步驟1,然後:
HINSTANCE hDllInst = LoadLibrary("youApp.DLL");
if(hDllInst)
{
typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC youFuntionNameAlias = NULL; // youFuntionNameAlias 函數別名
youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName");
// youFuntionName 在DLL中聲明的函數名
if(youFuntionNameAlias)
{
youFuntionNameAlias(param1,param2);
}
FreeLibrary(hDllInst);
}
二 C#調用DLL
首先,要添加命名空間:
using System.Runtime.InteropServices;
這個命名空間是爲了使用:[DllImport]
第二,要靜態引用外部庫:
在類內部,方法外部,通過"static extern"聲明,實例代碼如下:
[DllImport("ticketPrinterDll.dll"), CharSet=CharSet.Unicode]
public static extern void ShowMessage();
最後調用這個函數。