You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用IniFile.Create触发EAccessViolation异常,求问题排查方向

解决TIniFile创建时触发的EAccessViolation异常

你的问题出在变量名和类名重名上。Delphi对标识符大小写不敏感,你声明的变量IniFile和TIniFile类(引入IniFiles单元后,通常可直接用IniFile指代TIniFile)产生了冲突。当你调用IniFile.Create时,编译器会将其解析为访问未初始化的变量IniFile的Create方法——此时变量是野指针,直接触发EAccessViolation异常。

修正方法有两种,任选其一即可:

方案1:修改变量名(推荐)

将变量名改为与类名不重复的名称,比如MyIniFile:

var MyIniFile: TIniFile;
    IniFileName : String;

IniFileName := ChangeFileExt(Application.ExeName, '.ini') ;
MyIniFile := TIniFile.Create(IniFileName);

方案2:明确指定类全名

如果要保留变量名,调用构造函数时明确写出类的全名TIniFile,避免编译器混淆:

var IniFile: TIniFile;
    IniFileName : String;

IniFileName := ChangeFileExt(Application.ExeName, '.ini') ;
IniFile := TIniFile.Create(IniFileName);

核心就是避免命名冲突,让编译器能正确识别你要调用的是类的构造函数,而非未初始化变量的成员。

内容的提问来源于stack exchange,提问作者Mawg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:50:25