1,183
社区成员
发帖
与我相关
我的任务
分享
#define SIZE (512)
unsigned char ATemplet[SIZE];
unsigned char BTemplet[SIZE];
int WINAPI Getinfo(HANDLE hHandle,unsigned char* ATemplet);
int WINAPI Upinfo(HANDLE hHandle,unsigned char* BTemplet);
// 这样调用程序可以正常运行.
var ATemplet:Pchar;
begin
GetMem(ATemplet,512);
Getinfo(hHandle,ATemplet);
Upinfo(hHandle,ATemplet);
.....
end;
//问题:
var ATemplet:Pchar;
TempData:array[0..512] of char;
Str:string;
begin
GetMem(ATemplet,512);
//获取ATemplet
Getinfo(hHandle,ATemplet);
Str:=ATemplet;// 这样取不到值. 在 C++ ATemplet存的是512字节,于时我用Copymemory
Copymemory(@TempData,@ATemplet,512);//这样可以取到数据.但却导致Upinfo执行失败.
//注:屏蔽Copymemory整个代码却是正常运行.
Upinfo(hHandle,ATemplet);
.....
end;
var ATemplet,BTemplet:Pbyte;
TempData:array[0..511] of byte;
Str:string;
begin
GetMem(ATemplet,511;
//获取ATemplet
Getinfo(hHandle,ATemplet);
//以下两句代码出现问题
Copymemory(@TempData,@ATemplet,511);
BTemplet=pbyte(@TempData);
-----执行到这里 BTemplet 可能与ATemplet 不相等了.
Upinfo(hHandle,BTemplet);
.....
end;