S
SunMoon
Unregistered / Unconfirmed
GUEST, unregistred user!
自编了一dll,有一函数声明如下:
procedure jdesjm(mmschar);
begin
......
end;
experts
jdesjm;
在程序中调用如下
procedure jdesjm(mmschar)
stdcall;
function desjm(mms:string):string;
........
procedure jdesjm(mmschar)
external 'desjm.dll' name 'jdesjm'
//第一种调用方式
function desjm(mms:string):string;
begin
jdesjm(pchar(mms))
result := ms;
end;
//第二种调用方式
function desjm(mms:string):string;
var
mschar;
begin
ms:=pchar(mms);
jdesjm(ms)
result := strpas(ms);
end;
调用结果:
当调用这个函数任意一个结束后,程序无任何提示即退出,
通过跟踪调试发现dll函数调用后函数正常,但是在执行完调用函数后程序出现地址访问错误
即执行完 result := ms 或 strpas(ms) 到 end 后函数出错。
不知是什么原因
那位大侠指点一二,谢谢。
procedure jdesjm(mmschar);
begin
......
end;
experts
jdesjm;
在程序中调用如下
procedure jdesjm(mmschar)
stdcall;
function desjm(mms:string):string;
........
procedure jdesjm(mmschar)
external 'desjm.dll' name 'jdesjm'
//第一种调用方式
function desjm(mms:string):string;
begin
jdesjm(pchar(mms))
result := ms;
end;
//第二种调用方式
function desjm(mms:string):string;
var
mschar;
begin
ms:=pchar(mms);
jdesjm(ms)
result := strpas(ms);
end;
调用结果:
当调用这个函数任意一个结束后,程序无任何提示即退出,
通过跟踪调试发现dll函数调用后函数正常,但是在执行完调用函数后程序出现地址访问错误
即执行完 result := ms 或 strpas(ms) 到 end 后函数出错。
不知是什么原因
那位大侠指点一二,谢谢。