动态库调用出错

loyal2002 2002-12-04 12:41:20
我自己编写的动态库,编译成功,调用时断点跟踪返回结果正确,但是出现:
access violation at address 002346aa in moudule 'ICdll.dll',write of address on 00454658
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
loyal2002 2002-12-10
  • 打赏
  • 举报
回复
代码如下:
library ICdll;

uses
ShareMem,
SysUtils,
Classes;

{$R *.res}

function CHexToBin;external 'aa.dll';
function SingleDES;external 'Crwicc.dll';
function fasan(card_num:string;key_num:string):string;stdcall;
var
card_data,key,back_data:array of byte;
left_key,right_key,des_data1,des_data2,des_data3:array [0..7] of byte;
i:integer;
card_num1,subkey:string;
dpk1:array of byte;
abcd:variant;
begin
setlength(key,16*sizeof(byte));
setlength(back_data,16*sizeof(byte));
setlength(dpk1,16*sizeof(byte));
setlength(card_data,8*sizeof(byte));
card_num1:=copy(card_num,length(card_num)-15,16);
CHexToBin(card_data[0],card_num1,length(card_num1));
abcd:=card_data[0];
chextobin(key[0],key_num,length(key_num));
for i:=0 to 7 do
begin
left_key[i]:=key[i];
end;
singledes(1,left_key[0],8,card_data[0],des_data1[0]);
singledes(2,right_key[0],8,des_data1[0],des_data2[0]);
singledes(1,left_key[0],8,des_data2[0],des_data3[0]);

for i:=0 to 7 do
subkey:=subkey+inttohex(dpk1[i],2);
result:=subkey;
end;
exports
fasan;
begin
end.
hot3000 2002-12-06
  • 打赏
  • 举报
回复
此类的错误我以前也经常碰到:(主要是下面的原因:我想)
1: 在你 dll 里面有错误。
如: dll里有个窗体 form1 ,在form1 上有个 query1 组件。
在form1 还没有创建前是不能对query1进行操作的。否则会出错。
最好要调试你的dll

如果不行就把你的dll代码贴出来。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧