vb 里定义的是 -110600 到 110600,所以实际上是110600*2大小的数组
你写的SetLength(wavebuf,110600);当然不够长了
应该这样
var
wavebuf: array of byte; //全局动态数组
begin
SetLength(wavebuf,110600*2);
var
wavebuf: array of byte; //全局动态数组
procedure TForm1.Scanp(const de: integer);
begin
// SetLength(wavebuf,110600); //这样写后边会子界超出下标范围,此处能否套用VB的该语句?
...
end;