發(fā)表時(shí)間:2005-7-22 14:27:00

 樓主??

我想在我工程里面加載外部編譯好的DLL文件,并調(diào)用里面的函數(shù),應(yīng)該怎么設(shè)置????????????

作者:cracker007
專家分:21880

發(fā)表時(shí)間:2005-7-26 18:31:00

  1 樓??

用loadlibrary()

作者:escon
專家分:0

發(fā)表時(shí)間:2005-7-27 18:31:00

  2 樓??

有誰(shuí)知道?我也在找啊

作者: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)的嗎?