高手帮忙看一下,有关线程的问题。 ( 积分: 20 )

F

fou007

Unregistered / Unconfirmed
GUEST, unregistred user!
兄弟第一次发贴。没有多少分,多多包涵:)
这是摘的别人写的一个线程类,偶在机器里(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;
 
兄弟第一次发贴。没有多少分,多多包涵:)
这是摘的别人写的一个线程类,偶在机器里(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;
 
1 .把PSortArray = TSortArray;这一句放到TSortArray定义的后面.
2. 根据提示,数据类型太大,超过2GB了.呵呵.改成小点的看看.
(maxint div sizeof(integer)-1) = 536870910
太大了.
 
写错了吧,
应该是
PSortArray = ^TSortArray;
才对吧。
 
xiexie dajia
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
930
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部