S
SmallGhost
Unregistered / Unconfirmed
GUEST, unregistred user!
////////////////////////////////////////////////////////////////////////////////
type
RDirectStructInfo = record
// 目录编号
r_wDirectNo : WORD;
// 父节点编号
r_wParentNodeNo : WORD;
// 目录名称
r_szDirectName : string[255];
end;
// 包文件管理者
CDYFilePakManager = class
public
constructor Create;
destructor Destroy;
override;
procedure AddDirect( arg_rDirectInfo : RDirectStructInfo);
public
protected
m_rDirectInfoArray : array[0..const_MaxDirectStructInfoSize] of RDirectStructInfo;
m_rFileInfoArray : array[0..const_MaxFileStructInfoSize] of RFileStructInfo;
private
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//{{ 添加虚拟目录
procedure TForm1.FlatSpeedButton5Click(Sender: TObject);
var
clDirectStructInfo : RDirectStructInfo;
begin
clDirectStructInfo.r_wDirectNo := 1;
clDirectStructInfo.r_wParentNodeNo := 0;
clDirectStructInfo.r_szDirectName := 'Test001';
clFilePakManager.AddDirect(clDirectStructInfo01);
end;
//}} 添加虚拟目录
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//{{ 添加目录的实现代码
procedure CDYFilePakManager.AddDirect(arg_rDirectInfo : RDirectStructInfo);
begin
m_rDirectInfoArray[0].r_wDirectNo := arg_rDirectInfo.r_wDirectNo;
m_rDirectInfoArray[0].r_szDirectName := Copy(arg_rDirectInfo.r_szDirectName,0,255);
// 能不能把上面的语句改为
// m_rDirectInfoArray[0].r_szDirectName := arg_rDirectInfo.r_szDirectName;
m_rDirectInfoArray[0].r_wParentNodeNo := arg_rDirectInfo.r_wParentNodeNo;
end;
//}} 添加目录的实现代码
////////////////////////////////////////////////////////////////////////////////
为什么上面的代码会导致程序错误,系统提示如下:
Exception EAccessViolation in module DyFpak.exe at 0001BD4A
Access violation at address 0041BD4A in module 'DyFpak.exe'.Read of address 810010E2.
头都搞晕了,希望大家帮帮忙,找找问题在那里
type
RDirectStructInfo = record
// 目录编号
r_wDirectNo : WORD;
// 父节点编号
r_wParentNodeNo : WORD;
// 目录名称
r_szDirectName : string[255];
end;
// 包文件管理者
CDYFilePakManager = class
public
constructor Create;
destructor Destroy;
override;
procedure AddDirect( arg_rDirectInfo : RDirectStructInfo);
public
protected
m_rDirectInfoArray : array[0..const_MaxDirectStructInfoSize] of RDirectStructInfo;
m_rFileInfoArray : array[0..const_MaxFileStructInfoSize] of RFileStructInfo;
private
end;
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//{{ 添加虚拟目录
procedure TForm1.FlatSpeedButton5Click(Sender: TObject);
var
clDirectStructInfo : RDirectStructInfo;
begin
clDirectStructInfo.r_wDirectNo := 1;
clDirectStructInfo.r_wParentNodeNo := 0;
clDirectStructInfo.r_szDirectName := 'Test001';
clFilePakManager.AddDirect(clDirectStructInfo01);
end;
//}} 添加虚拟目录
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//{{ 添加目录的实现代码
procedure CDYFilePakManager.AddDirect(arg_rDirectInfo : RDirectStructInfo);
begin
m_rDirectInfoArray[0].r_wDirectNo := arg_rDirectInfo.r_wDirectNo;
m_rDirectInfoArray[0].r_szDirectName := Copy(arg_rDirectInfo.r_szDirectName,0,255);
// 能不能把上面的语句改为
// m_rDirectInfoArray[0].r_szDirectName := arg_rDirectInfo.r_szDirectName;
m_rDirectInfoArray[0].r_wParentNodeNo := arg_rDirectInfo.r_wParentNodeNo;
end;
//}} 添加目录的实现代码
////////////////////////////////////////////////////////////////////////////////
为什么上面的代码会导致程序错误,系统提示如下:
Exception EAccessViolation in module DyFpak.exe at 0001BD4A
Access violation at address 0041BD4A in module 'DyFpak.exe'.Read of address 810010E2.
头都搞晕了,希望大家帮帮忙,找找问题在那里