我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 大哥帮帮菜鸟_关于vc6下的dll编程教程中的问题... 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ hygienic // a. 卫生学的,促进健康的 ]


大哥帮帮菜鸟_关于vc6下的dll编程教程中的问题...

http://192.168.2.8/bbs/read.php?tid=174630&keyword=dll

其中
Quote:
2.显式链接

  显式链接是应用程序在执行过程中随时可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接所无法作到的,所以显式链接具有更好的灵活性,对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来,动态链接库的文件名即是上述两个函数的参数,此后再用GetProcAddress()获取想要引入的函数。自此,你就可以象使用如同在应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库。下面是通过显式链接调用DLL中的Max函数的例子。


#include "stdio.h"
#include
void main(void)
{
typedef int(*pMax)(int a,int b);
typedef int(*pMin)(int a,int b);
HINSTANCE hDLL;
pMax Max
hDLL=LoadLibrary("MyDll.dll");//加载动态链接库MyDll.dll文件;
Max=(pMax)GetProcAddress(hDLL,"Max");
A=Max(5,8);
Printf("比较的结果为%d\n",A);
FreeLibrary(hDLL);//卸载MyDll.dll文件;
}

  在上例中使用类型定义关键字typedef,定义指向和DLL中相同的函数原型指针,然后通过LoadLibray()将DLL加载到当前的应用程序中并返回当前DLL文件的句柄,然后通过GetProcAddress()函数获取导入到应用程序中的函数指针,函数调用完毕后,使用FreeLibrary()卸载DLL文件。在编译程序之前,首先要将DLL文件拷贝到工程所在的目录或Windows系统目录下。

  使用显式链接应用程序编译时不需要使用相应的Lib文件。另外,使用GetProcAddress()函数时,可以利用MAKEINTRESOURCE()函数直接使用DLL中函数出现的顺序号,如将GetProcAddress(hDLL,"Min")改为GetProcAddress(hDLL, MAKEINTRESOURCE(2))(函数Min()在DLL中的顺序号是2),这样调用DLL中的函数速度很快,但是要记住函数的使用序号,否则会发生错误。


那个#include后面应该是什么文件哦?

怎么编译都通不过呀....
顶端 Posted: 2006-10-09 21:21 | [楼 主]
kaby





性别: 帅哥 状态: 该用户目前不在线
头衔: 又好又强大
等级: 荣誉会员
家族: 八宝推倒委员会
发贴: 3360
威望: 0
浮云: 584
在线等级:
注册时间: 2003-09-24
最后登陆: 2015-03-28

5come5帮你背单词 [ devote /di'vəut/ vt. 将…奉献(给),致力于 ]


在MSDN上查LoadLibrary()/GetPocAddress()需要引用哪个头文件

顶端 Posted: 2006-10-10 12:32 | [1 楼]
kenneygf



性别: 帅哥 状态: 该用户目前不在线
头衔: 星星在眨眼~
等级: 前途无量
发贴: 6207
威望: 0
浮云: 1131
在线等级:
注册时间: 2004-05-22
最后登陆: 2009-07-12

5come5帮你背单词 [ convey /kən'vei/ vt. 传达,表达,传送,运输 ]


Quote:
引用第1楼kaby于2006-10-10 12:32发表的:
在MSDN上查LoadLibrary()/GetPocAddress()需要引用哪个头文件

thx

发现我好瓜哦...
原来是windows.h   - -@
顶端 Posted: 2006-10-12 10:48 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.007955(s) query 5, Time now is:11-24 04:10, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号