我如何让CopyMemory报错 ( 积分: 10 )

  • 主题发起人 主题发起人 ddzhouqian
  • 开始时间 开始时间
D

ddzhouqian

Unregistered / Unconfirmed
GUEST, unregistred user!
如题:
调用了段dll,开始的时候好好的,但到某一数据的时候,内存就直接报错,就在CopyMemory这段,不知道什么原因?各位我想知道怎么会报错的.同样一段代码只是在执行循环而已,但会接受个pchar的变量,操作的时候会将pchar的值放到你pointer中.
type
r1=record
id:longint;
name:cardinal;
end;
var p1:pointer;
r11:r1;
begin
getmem(p1,sizeof(r11))

CopyMemory(p1,buffer,sizeof(r11));//buffer是接受到的pchar类型的数据
freemem(p1);
end;
 
p1是pointer, sizeof(p1) 永远只会得到 4,
没见到你用的 r1 定义。
 
不好意思,白兄,我刚改过了,是r1的记录变量,我刚忘记定义了,粗心阿,呵呵!
谢谢你回贴!
其实那个buffer是通过回调函数获取的,但是在多次回调后,执行到CopyMemory代码段时候,会出现内存报错问题,
苦于无该dll源码,没法解决!现才发帖,求如何报错的,呵呵
 
没代码的话,那
try
Copymemory
except
有错
end;
 
调试跟一下不就得了
 
代码没问题,除非传入的BUFFER有问题
 
我就想知道传入什么的buffer会有问题啊?
 

Similar threads

D
回复
0
查看
930
DelphiTeacher的专栏
D
D
回复
0
查看
871
DelphiTeacher的专栏
D
D
回复
0
查看
945
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部