【发布时间】:2011-12-07 15:46:10
【问题描述】:
我是 Delphi 的新手,想尝试分解一个演示以了解它的结构。
我正在尝试让 Indy 10 Delphi FTP 客户端演示在 Delphi XE2 上运行。
每当我运行下载的代码时,我都会输入 FTP URL、用户名、密码等,当 FTP 连接时会出现此错误:
引发的异常类 $C00000005 带有消息“访问冲突在 0x0018f90e:写入地址 0x0000000'
我认为这意味着它指向一个空值?
调试工具简单点在这一行..
ChangeFTPDir(Sites[cbFTPAddress.ItemIndex].RootDir);
消除此错误的最佳方法是什么(尝试/捕获),或者是否有可以查看的 Delphi FTP 过程的工作示例?
提前感谢您的宝贵时间,
苏菲
流程如下:
procedure TfrmMain.ChangeFTPDir(NewDir: String);
begin
FLastDirStack.Add(FTP.RetrieveCurrentDir);
FTP.ChangeDir(NewDir);
DisplayFTP;
end;
我假设站点数组确实包含详细信息,因为 ftp 在错误出现之前确实连接到存储的 ftp 站点的名称...
【问题讨论】:
-
是的,错误意味着正在写入一个 nil 指针。您是否验证
Sites[]已分配且ItemIndex大于0?ChangeFTPDir()的代码是什么样的? -
procedure TfrmMain.ChangeFTPDir(NewDir: String);开始 FLastDirStack.Add(FTP.RetrieveCurrentDir); FTP.ChangeDir(新目录);显示FTP;结束;