發(fā)表時(shí)間:2005-7-22 14:27:00
樓主??
我想在我工程里面加載外部編譯好的DLL文件,并調(diào)用里面的函數(shù),應(yīng)該怎么設(shè)置????????????
|
作者:escon 專家分:0
 | 發(fā)表時(shí)間:2005-7-27 18:31:00
|
第
2
樓?? |
作者:pianpianni 專家分:20
 | 發(fā)表時(shí)間:2005-7-29 10:33:00
|
第
3
樓?? HINSTANCE hinstDLL=NULL;
hinstDLL=LoadLibrary("hgh.dll");
if (hinstDLL)
{
me Proc;
Proc = (me) GetProcAddress(hinstDLL,"hgh");
if(Proc==NULL) AfxMessageBox("Not found fuctdion ");
|
|
作者:xqm 專家分:250
 | 發(fā)表時(shí)間:2005-7-30 1:08:00
|
第
4
樓?? 樓上說(shuō)得挺好。
當(dāng)然,可以補(bǔ)充一點(diǎn):
樓上說(shuō)的是顯示調(diào)用,你也可以隱蔽的方法,如下:
1.將要調(diào)用的函數(shù)作 extern 聲明。
2.將動(dòng)態(tài)鏈接庫(kù)的.dll文件復(fù)制到windows 下的system目錄,將.lib文件復(fù)制到應(yīng)用程序所在目錄。
3.執(zhí)行Project|Settings菜單命令,在link頁(yè)面的Object/library modules中輸入導(dǎo)入庫(kù)的路徑如:Debug/mydll.lib.
就可以直接使用dll中的函數(shù)了。
|
|
作者:白云小飛 專家分:260
 | 發(fā)表時(shí)間:2005-7-30 9:01:00
|
第
5
樓?? 樓3,樓4說(shuō)得很好!不過(guò)我有一個(gè)問題。樓4所說(shuō)的動(dòng)態(tài)鏈接庫(kù)方法能不能不用將.dll放在system的目錄下而是放在其它的某個(gè)指定目錄下?
|
|
作者:cracker007 專家分:21880
 | 發(fā)表時(shí)間:2005-7-30 10:21:00
|
第
6
樓?? 沒問題。可以放在環(huán)境變量path指定的目錄下。
|
|
作者:xin5439 專家分:520
 | 發(fā)表時(shí)間:2005-7-31 16:12:00
|
第
7
樓?? 隨便放在哪里都行,LoadLibrary()中用絕對(duì)路徑就可以了
|
|
作者:白云小飛 專家分:260
 | 發(fā)表時(shí)間:2005-7-31 23:38:00
|
第
8
樓?? 我們來(lái)進(jìn)一步討論DLL的函數(shù)調(diào)用中的參數(shù)問題及返回值吧?如何具體地調(diào)用一個(gè)有引入?yún)?shù)、引出參數(shù)、返回值的函數(shù)呢?
|
|
作者:白云小飛 專家分:260
 | 發(fā)表時(shí)間:2005-7-31 23:46:00
|
第
9
樓?? 一. 動(dòng)態(tài)鏈接庫(kù)分類。
 與MFC無(wú)關(guān)的Win32動(dòng)態(tài)鏈接庫(kù)
 Regular Dll with MFC Statically linked
 Regular Dll using shared MFC DLL
 MFC Extension DLL(using shared MFC DLL).
這四種方式中MFC Extension DLL(using shared MFC DLL).不知是有什么特點(diǎn)?請(qǐng)教各位大蝦了!
|
|
作者:cracker007 專家分:21880
 | 發(fā)表時(shí)間:2005-8-1 12:24:00
|
第
10
樓?? 如果要擴(kuò)展mfc類,就必須用它。舉個(gè)例子,你有個(gè)對(duì)話框cyourdialog類,你自己從cdialog派生出來(lái)的,你要想在主程序中調(diào)用dll,就得把dll做成mfc extension.
我倒是想知道Regular Dll with MFC Statically linked和lib有什么區(qū)別?不都是靜態(tài)的嗎? |
|