delphi5编译dll为什么不能在PB中调用出错
delphi编的dll中有函数
function inputcf(a1,a1:pchar;fy1,fy2:longint):boolean;stdcall;
begin
try
form1:=Tform1.create(application);
form1.showmodal;
fy1:=1;
fy2:=2;
form1.free;
result:=true;
except
form1.free;
result:=false;
end;
end;
在delphi中调用该dll中的这个函数正常执行,也没有出现内存窗口,而在pb7中调用
一调用就提示error calling external inputcf.是不是因为delphi编的dll不是标准的dll.请各位高手指点
问题点数:20、回复次数:7Top
1 楼blazingfire(烈焰)(对.net极度憎恨中....)回复于 2002-04-03 19:25:42 得分 0
PB不懂,是不是你在PB中调用出错中了Top
2 楼wangjintu(万般归一)回复于 2002-04-04 09:54:34 得分 0
不会吧,在pb中调用定义如下
function inputcf(string icno,string lsh,ref long fy1,ref long fy2)
library "test.dll"
其中test.dll在和建立的pbl在同一目录下
调用语句如下
long a1,a2
a1=0
a2=0
if inputcf('111','222',a1,a2)=true then
script
end if
就在if语句上出错
Top
3 楼iBear(大熊 不要怀疑我的温柔)回复于 2002-04-04 09:58:49 得分 10
pb中string是否是C中标准的空字符结尾的字串(也就是delphi中pchar),要不pb能自动进行转换,否则是有问题的!!Top
4 楼wangjintu(万般归一)回复于 2002-04-04 12:42:00 得分 0
pb中的string应该是c中标准空字符结尾的字串,不然pb那还有别的数据类型来定义字符串(符合c标准的)Top
5 楼kinglaw(wang)回复于 2002-04-04 13:46:23 得分 10
还象是你自己的错误!
在pb中调用
function Boolean inputcf(string icno,string lsh,ref long fy1,ref long fy2)
对应的delphi声明应该是
function inputcf(a1,a2:pchar;var fy1:longint ;var fy2:longint):boolean;stdcall;
Top
6 楼wangjintu(万般归一)回复于 2002-04-05 09:35:02 得分 0
楼上的kinglaw兄弟,按照你的做还是不行Top
7 楼wangjintu(万般归一)回复于 2002-04-05 11:10:27 得分 0
问题原来出在函数名的大小写上面,在dll中定义的是小写,而调用的时候用的是大写,看来dll中的函数名十分大小写的。不过还是谢谢各位Top
相关问题
- 如何在vc++中调用delphi编译的DLL
- 这个delphi作的dll怎么就不能被别的编译器编译的程序调用呢?
- 请教delphi里面调用pb编译的dll的问题。急等啊
- VC.NET如何调用VC6.0编译的DLL?
- C# 编译dll VB调用 可以吗
- 编译dll后,不能正常调用
- 哪位高手可以告诉我如何用Delphi调用VC或者C++Builder编译的dll文件
- 求将加密过程写成DLL可供ASP调用,或者将Delphi加密代码编译成ASP代码
- 500分求:把这个CodeGuru的Treeview控件编译成ActiveX或DLL,这样我可以在Delphi,VB中调用
- 怎么把窗体编译成dll,怎么调用窗体dll?





