chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1564回复:12

请教DLL调用!

楼主#
更多 发布于:2003-04-11 17:00
请问在98下(VC 1.52)如何调用一个已经存在的mymaths.DLL文件中的函数;在2000下(VC 6)如何调用一个已经存在的mymaths.DLL文件中的函数?而且mymaths.DLL是否需要用VC 1.52和VC 6写两遍,用VC6写的,能在98(VC1.52)下用吗?

我对DLL一点都不懂,请指教,或推荐几本有关方面的参考书。
li_jie
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2005-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-22 14:28
vc6.0中的一种常用方法:
    先将mymaths.DLL拷贝到c:\\winnt\\system32\\,然后将mymaths.h和mymaths.lib拷贝到你的当前目录下,然后将mymaths.lib添加到你的程序里,并在你要调用动态库里的函数的文件里加上#include \"mymaths.h\",即可直接调用。
chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-22 14:59
谢谢关注
98下:我用LoadlibraryEx32w()来调用mymaths.dll(没有相关LIB函数,只有一个DLL),但是system给出的error code为6,HANDLE为非空。
2000下:我用Loadlibrary()调用mymaths.dll,出来的结果与98下的一样(我定义了UNICODE)。不定义UNICODE时,调用是可以的。不知道是为什么?
请指教
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-22 22:04
我想这个dll不支持unicode吧
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-23 09:26
但是98下并没有定义UNICODE,而且
我在2000下也曾试过LoadLibraryA(没有定义UNICODE,LoadLibrary的原形),结果还是一样,不知道为什么?
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-24 00:24
这个dll是用什么写的?
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
petz
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2015-12-19
  • 粉丝0
  • 关注0
  • 积分-22276分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-24 09:53
用户被禁言,该主题自动屏蔽!
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-24 11:36
最起码得要知道他函数的参数了
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-26 09:17
这个DLL是用VC6写的,里面供调用的函数原形我已知道。
我是用GetProcAddress()得到函数地址。
因为2000下,我写了一个只调用这个DLL的小程序,调用是
成功的,但是运用到我的目标程序时(定义了UNICODE),
调用变地不成功,系统给的ERROR CODE 为6。不知道为什么?
还有一点我不是很清楚,编写DLL时需要写特殊的代码来支持UNICODE吗?
谢谢,请指教。
AthlonXP
驱动小牛
驱动小牛
  • 注册日期2003-05-11
  • 最后登录2010-01-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-26 15:31
我从头看了一遍帖子,觉得更糊涂了,只能帮你顶顶了
AthlonXP是个好人,他一生没有欺压过同侪,没有背叛过朋友。从小到大,他都是个好孩子,没有出过什么差错,没有让家人师长担过心。虽然用一句时髦的话,他不善于"推销"自己,但是做学问扎扎实实,不会投机取巧;做工作也是一步一个脚印,不会敷衍塞责。他虽然是个大烟枪,偶尔也喝喝酒,但是没有什么见不得人的恶习。他花钱虽然不特别大方,可是也不吝啬。许多不如他的人,或幸或不幸,一般的也都成了家。可是为什么MM不喜欢他呢??
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2003-05-26 16:42
猜一下,大概是这样的:
他用VC6写了个Win32的Dll,想它可以被他的一个Win16的app调用,也可以被Win32的调用。但是他在Win32调用的时候,如果定义的UNICODE的话,就加载不成功了。
是这样的吧?

6是无效的句柄

[编辑 -  5/26/03 by  arthurtu]
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-05-26 20:50
有相关的lib和h吗?

我曾记得有一个工具,可以导出函数。
chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-05-27 09:05
arthurtu
您猜地不错,这个dll不是我写的,它也没有相关的lib文件和h文件。但dll中可供调用函数的原形是有的。
6是无效句柄。
谢谢关注
游客

返回顶部