在工程文件中写INI文件,代码报错

Yothan 2010-08-12 08:12:20
因为目的很简单,就是向system32下的2个ini文件中写东西,所以不想使用Form,这样编译出来的程序小,而且也实现我想要的功能就可以了。但是我的代码出现异常,报错:
---------------------------
Application Error
---------------------------
Exception EAccessViolation in module ntdll.dll at 000120E6.

Access violation at address 7C9320E6 in module 'ntdll.dll'. Write of address 004040E1.


---------------------------
确定
---------------------------


program Writeini;

uses
Windows,
SysUtils,
IniFiles;

{$R *.res}
const PublictProduct = 'ShineDeliver_Public';
var
FWindowPath, FProductID, FProductPath: string;

function GetWindowsDir: string;
var
pSystemPath: array[0..255] of Char;
begin
GetWindowsDirectory(pSystemPath, SizeOf(pSystemPath));
Result := StrPas(pSystemPath);
end;


procedure WriteAppserverInfo;
var
AppServer: TIniFile;
FileBool: Boolean;
begin
try
FileBool := FileExists(FWindowPath + '\System32\xxx.ini');//测试用
AppServer := TIniFile.Create(FWindowPath + '\System32\xxx.ini');
AppServer.WriteString...
finally
AppServer.Free;
end;
end;

begin
FProductID := ParamStr(1);
FProductPath := Paramstr(2);
FWindowPath := GetWindowsDir;
WriteAppserverInfo;
end.



help。。。
...全文
115 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yothan 2010-08-13
  • 打赏
  • 举报
回复
找到原因,应该是是测试的时候没有传入参数,写ini发现节点为空
Yothan 2010-08-13
  • 打赏
  • 举报
回复
在 AppServer.Free; 这句抛出异常,不知是何故。
如果是放在Form单元里是没有问题的。
cnsillycat 2010-08-13
  • 打赏
  • 举报
回复
bdmh 2010-08-13
  • 打赏
  • 举报
回复
不是代码的问题,你跟踪一下,看看到哪句代码出错
haitao 2010-08-12
  • 打赏
  • 举报
回复
什么OS?会不会是system32目录下的文件不允许当前账号写?
kye_jufei 2010-08-12
  • 打赏
  • 举报
回复
代碼沒有問題,應該是編譯器出了什麼問題???你重啟一下Delphi再編譯這段代碼試試呢...
yct0605 2010-08-12
  • 打赏
  • 举报
回复
设置断点跟踪看看...
dinoalex 2010-08-12
  • 打赏
  • 举报
回复
测过没发现什么问题

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧