一个关于DLL调用的高难度问题,高手请进!
我有一个磁卡写卡设备,厂家提供了一个名为LK607W95.DLL的链接库,内含两个函数INT WCARD(CHAR *COMP,CHAR *DATA)
INT RCARD(CHAR *COMP,CHAR *DBUF)
我在PB中的函数说明如下:
Function wcard(ref string cdmp,ref string data) libarary("LK607W95.DLL")
在按钮中的脚本如下:
string cdmp,data
wcard(cdmp,data)
在运行是报如下错:
Application terminated.
Error:Bad runtime function reference at line2 in cliked event of lbject cb_1 of w_main
不知怎么回事,请高手指教!
问题点数:100、回复次数:12Top
1 楼zqllyh(学习Stupid As Pig中...)回复于 2002-09-30 16:14:59 得分 5
try:
int aa
string cdmp,data
aa = wcard(cdmp,data)
Top
2 楼hjd_cw()回复于 2002-09-30 16:17:28 得分 5
1. Function long wcard(ref string cdmp,ref string data) libarary"LK607W95.DLL"
2. 函数名注意大小写
3. ref声明时,字符串先分配空间,如:cdmp = space(256)
......Top
3 楼gent_guo()回复于 2002-09-30 16:36:21 得分 0
还是一样的问题!Top
4 楼hjd_cw()回复于 2002-09-30 16:39:54 得分 5
把 LK607W95.DLL 文件拷贝到系统可搜索路径里。Top
5 楼hjd_cw()回复于 2002-09-30 16:43:36 得分 5
用windows的快速查看 或 MS VisualStudio 的工具 View Dependency 看看该DLL 里export 的函数是否跟你程序的声明的函数一致?Top
6 楼gent_guo()回复于 2002-09-30 17:04:36 得分 0
我已copy到当前目录下。
函数与程序的声明的函数一致,我在vfoxpro中就能正常调用。
Top
7 楼WangAQ(Focus)回复于 2002-09-30 17:10:14 得分 5
比较痛苦的事情,因为那个DLL不是你写的
和你那个设备供应商沟通沟通。Top
8 楼derris(深水鱼)回复于 2002-09-30 17:15:07 得分 35
ref 的引用需要为返回的内容分配内存的.
string cdmp,data
cdmp = space(255)
data = space(255)
wcard(cdmp,data)
-- 祝好运Top
9 楼WangAQ(Focus)回复于 2002-09-30 17:24:11 得分 5
参数类型呢?Top
10 楼hjd_cw()回复于 2002-09-30 17:26:55 得分 5
函数名注意大小写 !
确认了吗?Top
11 楼chinalht()回复于 2002-10-01 10:05:58 得分 25
仔细看看dll得说明吧,可能和你参数类型有关.
Top
12 楼nettang(唐朝)回复于 2002-10-01 10:51:01 得分 5
兄弟啊,他的DLL不是一个标准的DLL,你问问上家是不是用VB写的,如果是用VB写的话在PB中就不能直接调用的,是VC写的就可以直接调用的!Top




