delphi调用vc编写的dll文件
DLL文件函数说明:
VerifyPublicKey(char * RandomM , char *DataOut)
输入函数:
RandomM:主站随机数(8个字节)
输出函数:
DataOut :签名(126个字节)
在Delphi中调用,
type
Buffer1=Array[0..15] of char;
Ptr1=^Buffer1;
Buffer2=Array[0..255] of char;
Ptr2=^Buffer2;
...
end;
function VerifyPublicKey(RandomM:Ptr1;DataOut:Ptr2):integer;stdcall;External'AA.dll';
procedure TForm1.Button1Click(Sender: TObject);
var Flag:integer;
RStr:Ptr1;
DStr:Ptr2;
str:string;
begin
str:='1234567891234567';//随机数
RStr:=@str;
Flag:=VerifyPublicKey(RStr,DStr);
if Flag=1 then
begin
Application.MessageBox('成功!','系统提示',mb_ok);
Memo1.Lines.Add(DStr^);//显示返回的内容
end
else
begin
Application.MessageBox('失败!','系统提示',mb_ok);
end;
end;
到执行那个函数时报错(就这句:Flag:=VerifyPublicKey(RStr,DStr);),提示“Access violation at address 1000371E in module 'AA.dll', Write of address 00000000.”,请大家帮我看看,是不是定义的指针类型有问题,或者是赋值有问题,(注:VC写的Dll文件是没问题的,Dll中的函数参数格式也没问题,但没有源码)谢谢!