我自己编写的动态库,编译成功,调用时断点跟踪返回结果正确,但是出现:
access violation at address 002346aa in moudule 'ICdll.dll',write of address on 00454658
access violation at address 002346aa in moudule 'ICdll.dll',write of address on 00454658
解决方案 »
- 200分求DDOS代码~~~*****不是想搞破坏,只是想了解*****第二贴!~~~
- 用过DevExpress Grid Suite的请进
- 关于截获程序封包的问题
- 翻译的书出版了,放分庆祝
- 一个delphi菜鸟的学习问题!!会有高分
- 我用adotable看到的sql server一个表中的纪录不是全部的,怎样解决
- 为什么F1BOOK中包含图片另存为EXCEL文件后图片没了?
- customeredit1.pas(163): Identifier redeclared: 'Tcustomeredit.BitBtn4Click'
- 请问怎么样将整个工程从内存中全部释放?
- 怎样侦测ADOCONNECTION是否已同SQLSERVER连接!!
- 如何动态改变浮点型小数点的位数?
- 请问如何取得特定数据库的所有表名?
1: 在你 dll 里面有错误。
如: dll里有个窗体 form1 ,在form1 上有个 query1 组件。
在form1 还没有创建前是不能对query1进行操作的。否则会出错。
最好要调试你的dll如果不行就把你的dll代码贴出来。
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.