#include "stdafx.h" #include <windows.h> #include <windowsx.h> #include "resource.h" #include "MainDlg.h" typedef int(_cdecl* FunctionAdd)(int,int); /* Template designed by RuPeng.com. Please visit http://www.rupeng.com for more information 如鵬網(http://www.rupeng.com)大學生計算機學習社區,提供大量免費視頻學習教程,提供個性化一對一學習指導 */ BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { HMODULE hModule; FunctionAdd add; hModule = LoadLibrary("Newdll.dll"); //調試時hModule爲0x10000000 //LoadLibrary返回的就是dll的句柄 //參數可以是相對路徑,也可以是絕對路徑 if(NULL==hModule ) { MessageBox(hwnd,TEXT("加載dll失敗"),TEXT("錯誤"),MB_OK); } add =(FunctionAdd)GetProcAddress(hModule,"add"); if(NULL==add) { MessageBox(hwnd,TEXT("加載dll失敗"),TEXT("錯誤"),MB_OK); } int r=add(1,1); TCHAR msg[256]; wsprintf(msg,"1+1=%i",r); MessageBox(hwnd,msg,TEXT("錯誤"),MB_OK); FreeLibrary(hModule); } break; default: break; } } void Main_OnClose(HWND hwnd) { EndDialog(hwnd, 0); }
【VC++】動態調用鏈接庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.