DLL調用

一 VC調用DLL

靜態調用:

  1. 把你的youApp.DLL拷到你目標工程(需調用youApp.DLL的工程)的Debug目錄下;
  2. 把你的youApp.lib拷到你目標工程(需調用youApp.DLL的工程)目錄下;
  3. 把你的youApp.h(包含輸出函數的定義)拷到你目標工程(需調用youApp.DLL的工程)目
  4. 錄下;
  5. 打開你的目標工程選中工程,選擇Visual C++的Project主菜單的Settings菜單;
  6. 執行第4步後,VC將會彈出一個對話框,在對話框的多頁顯示控件中選擇Link頁。然
  7. 後在Object/library modules輸入框中輸入:youApp.lib
  8. 選擇你的目標工程Head Files加入:youApp.h文件;
  9. 最後在你目標工程(*.cpp,需要調用DLL中的函數)中包含你的:#include "youApp.h"
注:youApp是你DLL的工程名。

動態調用:

動態調用時只需做靜態調用步驟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();
最後調用這個函數。

發佈了44 篇原創文章 · 獲贊 14 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章