發表時間:2005-7-22 14:27:00

 樓主??

我想在我工程里面加載外部編譯好的DLL文件,并調用里面的函數,應該怎么設置????????????

作者:cracker007
專家分:21880

發表時間:2005-7-26 18:31:00

  1 樓??

用loadlibrary()

作者:escon
專家分:0

發表時間:2005-7-27 18:31:00

  2 樓??

有誰知道?我也在找啊

作者:pianpianni
專家分:20

發表時間: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

發表時間:2005-7-30 1:08:00

  4 樓??

樓上說得挺好。
當然,可以補充一點:
樓上說的是顯示調用,你也可以隱蔽的方法,如下:
1.將要調用的函數作 extern 聲明。
2.將動態鏈接庫的.dll文件復制到windows 下的system目錄,將.lib文件復制到應用程序所在目錄。
3.執行Project|Settings菜單命令,在link頁面的Object/library modules中輸入導入庫的路徑如:Debug/mydll.lib.

就可以直接使用dll中的函數了。

作者:白云小飛
專家分:260

發表時間:2005-7-30 9:01:00

  5 樓??

樓3,樓4說得很好!不過我有一個問題。樓4所說的動態鏈接庫方法能不能不用將.dll放在system的目錄下而是放在其它的某個指定目錄下?

作者:cracker007
專家分:21880

發表時間:2005-7-30 10:21:00

  6 樓??

沒問題。可以放在環境變量path指定的目錄下。

作者:xin5439
專家分:520

發表時間:2005-7-31 16:12:00

  7 樓??

隨便放在哪里都行,LoadLibrary()中用絕對路徑就可以了

作者:白云小飛
專家分:260

發表時間:2005-7-31 23:38:00

  8 樓??

我們來進一步討論DLL的函數調用中的參數問題及返回值吧?如何具體地調用一個有引入參數、引出參數、返回值的函數呢?

作者:白云小飛
專家分:260

發表時間:2005-7-31 23:46:00

  9 樓??

一. 動態鏈接庫分類。
 與MFC無關的Win32動態鏈接庫
 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).不知是有什么特點?請教各位大蝦了!

作者:cracker007
專家分:21880

發表時間:2005-8-1 12:24:00

  10 樓??

如果要擴展mfc類,就必須用它。舉個例子,你有個對話框cyourdialog類,你自己從cdialog派生出來的,你要想在主程序中調用dll,就得把dll做成mfc extension.
我倒是想知道Regular Dll with MFC Statically linked和lib有什么區別?不都是靜態的嗎?