发表时间: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有什么区别?不都是静态的吗?