1.使用 VC6.0 生成 DLL新建項目 “Win32 Dynamic-Link Library”,,輸入項目名稱,,確定后選擇 “A simple DLL project” 點擊“完成”。
以下為cpp文件自動生成的代碼: #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; }
編輯cpp文件: 在#include "stdafx.h"的下一行加入 extern "C" __declspec(dllexport) int fun(int a, int b); /* 這是C格式導(dǎo)出函數(shù); 這種寫法一般用在C++寫的DLL中,,指按C的規(guī)則導(dǎo)出這個函數(shù),,否則導(dǎo)出的函數(shù)會很怪; 其中 int fun(int a, int b) 這部分代碼是我們想用 dll 實現(xiàn)的函數(shù)原型聲明 如果還想加入其他的可以繼續(xù)加入 extern "C" __declspec(dllexport) int fun1(int a, int b); */
DllMain 是 DLL 的默認入口函數(shù),類似于C語言的main函數(shù),,該例子無需修改此處,,在 DllMain 的后面加入: int fun(int a,int b) { return a+b; }
這就是我們想用 DLL 實現(xiàn)的函數(shù)的定義,build 之后就會在 debug 目錄下生成我們想要的 dll 文件 2.調(diào)用 DLL新建一個 Win32 Console Application 工程,,把剛才生成的 dll 文件拷貝到工程的根目錄下
在 stdafx.h 文件中加入:#include <windows.h>
編輯cpp文件: #include "stdafx.h" typedef int (*PFUN)(int,int); void main() { HMODULE hModule = ::LoadLibrary("dlltest.dll"); PFUN newfun = (PFUN)::GetProcAddress(hModule,"fun"); int i = newfun(1,2); printf("The result is %d\n",i); ::FreeLibrary(hModule); }
然后,,運行就可以看到結(jié)果了 |
|
來自: 速查室 > 《VC技術(shù)文檔》