这是摘的别人写的一个线程类,偶在机器里(D7)编译通不过,提示undeclared identifier :TSortArray,偶把第一句注释掉,然后把FSortArray:PSortArray改为FSortArray:TSortArray,结果,提示data type too large:exceeds 2GB
偶的use部分只有classes,加上typinfo也不可以
高手能不能帮忙看一下,问题出在哪里
第一个错误是为什么
第二个错误又是为什么类定义如下:
type
PSortArray=TSortArray;
TSortArray=array[0..MaxInt div SizeOf(Integer)-1] of Integer;
{此处定义了TsortThread类}
TSortThread=class(TThread)
private
{在TSortThread类中定义了如下几个私有变元}
FSortArray:PSortArray;
FSize:Integer;
FA,FB,FI,FJ:Integer;
protected
{类TSortThread超越了类Tthread的Execute方法}
procedure Execute;override;
{类TsortThread添加了一个Sort方法}
procedure Sort(var A: array of Integer);
public
{类TSortThread超越了类Tthread的构造方法}
constructor Create(var SortArray: array of Integer);
end;
偶的use部分只有classes,加上typinfo也不可以
高手能不能帮忙看一下,问题出在哪里
第一个错误是为什么
第二个错误又是为什么类定义如下:
type
PSortArray=TSortArray;
TSortArray=array[0..MaxInt div SizeOf(Integer)-1] of Integer;
{此处定义了TsortThread类}
TSortThread=class(TThread)
private
{在TSortThread类中定义了如下几个私有变元}
FSortArray:PSortArray;
FSize:Integer;
FA,FB,FI,FJ:Integer;
protected
{类TSortThread超越了类Tthread的Execute方法}
procedure Execute;override;
{类TsortThread添加了一个Sort方法}
procedure Sort(var A: array of Integer);
public
{类TSortThread超越了类Tthread的构造方法}
constructor Create(var SortArray: array of Integer);
end;
TSortArray=array[0..MaxInt div SizeOf(Integer)-1] of Integer;呵呵,怎么倒了。 先有鸡还是先有蛋???
TSortArray=array[0..MaxInt div SizeOf(Integer)-1] of Integer;
PSortArray=TSortArray; //得先定义T,才能P啊 TSortArray的大小是2G,所以还得把参数恢复成PSortArray