dll读取INI文件的问题(20分)

  • 主题发起人 主题发起人 liaozhiguo
  • 开始时间 开始时间
L

liaozhiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tf_login.FormCreate(Sender: TObject);
var myini:Tinifile;
server:string;
begin
if myini=nil then
myini:=tinifile.Create(extractfilepath(paramstr(0))+'sqlini.ini');
server:=myini.ReadString('SQL','server','');
end;

以上在DLL中编译通过。可是执行出错,不知为何? 该放的地方ShareMem, 都放了
server:=myini.ReadString('SQL','server','');
这一句出错
 
究竟哪出错,什么错都不说。。。。
 
var myini:Tinifile;
server:string;
begin
myini:=tinifile.Create(extractfilepath(paramstr(0))+'sqlini.ini');
server:=myini.ReadString('SQL','server','');
end;

///////////////

不知道 if myini=nil 这个用来干什么的 去掉就好了
 
不知道你报错是什么?
ShareMem一定要放在第一个位置上.
 
var myini:Tinifile;是个局部变量,不初始化,因此初始值可能不是nil!
把var myini:Tinifile声明成全局变量 或者去掉if myini=nil
 
竟然冒出一句 if myini=nil then
...
看来,人的智商是没有下限的...
 
if myini=nil then
myini:=tinifile........
从未见过如此诡异的写法
 
接受答案了.
 
if myini=nil then
myini:=tinifile........
从未见过如此诡异的写法
---------------------------
没有见过是你见识少了!这是节省资源的一种方法!myini是个全局变量,为了节省资源,只是在需要myini的时候才创建,尽量推迟,如过程a需要myini,但是a可能多次调用,因此需要判断myini创建过没有,因此,if myini=nil then
这样的代码,没有任何问题!
 

Similar threads

后退
顶部