不太难!请取分 (200分)

  • 主题发起人 主题发起人 zjok
  • 开始时间 开始时间
Z

zjok

Unregistered / Unconfirmed
GUEST, unregistred user!
byte data[9],key[9];
byte macsouce[500];
byte mac[9];
strcpy((char*)data, "00000000");
strcpy((char*)key, "11111111");
memset(macsouce,0,sizeof(macsouce));
memcpy(macsouce,"1454567..");
Bank_GetMac( macsouce, 257, key ,data, mac);
我想知道bank_getmac 的参数对应delphl的类型
以上请帮忙转为delphi
bank_getmac 是VC写的
我已转为dll了

但参数相对应的类型我就不知
C不太会
 
俺帮你提前
 
采用PChar类型,示例如下:
procedure TForm1.Button1Click(Sender: TObject);
var
data,key,mac : PChar;
macsouce : PChar;
begin
GetMem( data,9 );
GetMem( key,9 );
GetMem( mac,9 );
GetMem( macsouce,500 );

data := '00000000';
key := '11111111';

macsouce := '1454567..';

//现在就可调用了,在声明时也必须是上面的类型(PChar)
Bank_GetMac( macsouce, 257, key ,data, mac );

FreeMem( data );
FreeMem( key );
FreeMem( mac );
FreeMem( macsouce );
end;
 
我也这样写过了
但有这样的问题 第一次运行得出的结果不同于第二次,但第二、第三次或以后都相同了
(当然是在相同的参数情况下)
我还以为是我的参数类型写错了

但在C builder 下没有这样的情况
有谁知道是什么原因啊
 
对付 VC之类的 Dll,
用PChar 啦,
呵呵~~~~~~~~~~~~~~
 
采用PChar类型,示例如下:
procedure TForm1.Button1Click(Sender: TObject);
var
data,key,mac : PChar;
macsouce : String;
begin
GetMem( data,9 );
GetMem( key,9 );
GetMem( mac,9 );
//GetMem( macsouce,500 );

data := '00000000';
key := '11111111';

macsouce := '1454567..';

//现在就可调用了,在声明时也必须是上面的类型(var stra:String)
Bank_GetMac( macsouce, 257, key ,data, mac );

FreeMem( data );
FreeMem( key );
FreeMem( mac );
//FreeMem( macsouce );
end;
 
各位,以上用pchar类型 我也这样写过了
但有这样的问题 第一次运行得出的结果不同于第二次,但第二、第三次或以后都相同了
(当然是在相同的参数情况下)
我还以为是我的参数类型写错了

但在C builder 下没有这样的情况
有谁知道是什么原因啊
to:book523 不能用string 呢 会出错!
 
这样不知道可不可以 [:)]
var
mac,data,key: array[1..9] of Byte;
macsouce: array[1..500] of Byte;
......
Bank_GetMac( @macsouce, 257, @key ,@data,@mac);

 
同意book523
 
好样的,学习!
 
试了没,ywhbn的行不行?
 
结束了
应是dll有问题吧
 
后退
顶部