阅读:1629回复:12
请教DLL调用!
请问在98下(VC 1.52)如何调用一个已经存在的mymaths.DLL文件中的函数;在2000下(VC 6)如何调用一个已经存在的mymaths.DLL文件中的函数?而且mymaths.DLL是否需要用VC 1.52和VC 6写两遍,用VC6写的,能在98(VC1.52)下用吗?
我对DLL一点都不懂,请指教,或推荐几本有关方面的参考书。 |
|
沙发#
发布于:2003-05-22 14:28
vc6.0中的一种常用方法:
先将mymaths.DLL拷贝到c:\\winnt\\system32\\,然后将mymaths.h和mymaths.lib拷贝到你的当前目录下,然后将mymaths.lib添加到你的程序里,并在你要调用动态库里的函数的文件里加上#include \"mymaths.h\",即可直接调用。 |
|
板凳#
发布于:2003-05-22 14:59
谢谢关注
98下:我用LoadlibraryEx32w()来调用mymaths.dll(没有相关LIB函数,只有一个DLL),但是system给出的error code为6,HANDLE为非空。 2000下:我用Loadlibrary()调用mymaths.dll,出来的结果与98下的一样(我定义了UNICODE)。不定义UNICODE时,调用是可以的。不知道是为什么? 请指教 |
|
地板#
发布于:2003-05-22 22:04
我想这个dll不支持unicode吧
|
|
|
地下室#
发布于:2003-05-23 09:26
但是98下并没有定义UNICODE,而且
我在2000下也曾试过LoadLibraryA(没有定义UNICODE,LoadLibrary的原形),结果还是一样,不知道为什么? |
|
5楼#
发布于:2003-05-24 00:24
这个dll是用什么写的?
|
|
|
6楼#
发布于:2003-05-24 09:53
用户被禁言,该主题自动屏蔽! |
|
7楼#
发布于:2003-05-24 11:36
最起码得要知道他函数的参数了
|
|
|
8楼#
发布于:2003-05-26 09:17
这个DLL是用VC6写的,里面供调用的函数原形我已知道。
我是用GetProcAddress()得到函数地址。 因为2000下,我写了一个只调用这个DLL的小程序,调用是 成功的,但是运用到我的目标程序时(定义了UNICODE), 调用变地不成功,系统给的ERROR CODE 为6。不知道为什么? 还有一点我不是很清楚,编写DLL时需要写特殊的代码来支持UNICODE吗? 谢谢,请指教。 |
|
9楼#
发布于:2003-05-26 15:31
我从头看了一遍帖子,觉得更糊涂了,只能帮你顶顶了
|
|
|
10楼#
发布于:2003-05-26 16:42
猜一下,大概是这样的:
他用VC6写了个Win32的Dll,想它可以被他的一个Win16的app调用,也可以被Win32的调用。但是他在Win32调用的时候,如果定义的UNICODE的话,就加载不成功了。 是这样的吧? 6是无效的句柄 [编辑 - 5/26/03 by arthurtu] |
|
11楼#
发布于:2003-05-26 20:50
有相关的lib和h吗?
我曾记得有一个工具,可以导出函数。 |
|
12楼#
发布于:2003-05-27 09:05
arthurtu
您猜地不错,这个dll不是我写的,它也没有相关的lib文件和h文件。但dll中可供调用函数的原形是有的。 6是无效句柄。 谢谢关注 |
|