我想通过INI文件来写远端服务器IP地址,然后配置DCOMCONNection,达到连接远端服务器的目的。代码如下:procedure TForm1.FormCreate(Sender: TObject);
var
   Myinifile:TInifile;
   tempstr,V_Filename:string;
begin
   V_Filename:=ExtractFilePath(Paramstr(0))+'sys.ini';
   Myinifile:=Tinifile.Create(V_Filename);
   tempstr:=Myinifile.ReadString('conn','SERVER_IP','');
  try
    try
      DM.DCOMC1.ComputerName:=tempstr;
      DM.DCOMC1.Connected:=true;
    except
      on e:exception do
        showmessage(e.Message);
    end;
  finally
     Myinifile.Free;
end;
end;提示出错:access violation at address 0061b7a2 in module 'project1.exe'!
写入TDM.DataModuleCreate中,运行提示RPC服务器不可用!请问高手,我这种方法可行么?如果可行,问题出在哪里,如果不可行,如何解决?

解决方案 »

  1.   

    你看一看你的DataModule是不是在Form1创建之前就已创建好了,具体的情况在工程的属性中。
      

  2.   

    不是这个原因吧,DataModule是自动创建的。而且我先创建也不行。
      

  3.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
       Myinifile:TInifile;
       tempstr,V_Filename:string;
    begin
       V_Filename:=ExtractFilePath(Paramstr(0))+'sys.ini';
       Myinifile:=Tinifile.Create(V_Filename);
       tempstr:=Myinifile.ReadString('conn','SERVER_IP','');
      try
        try
          DM.DCOMC1.Connected:=false;
          DM.DCOMC1.ComputerName:=tempstr;
          DM.DCOMC1.Connected:=true;
        except
          on e:exception do
            showmessage(e.Message);
        end;
      finally
         Myinifile.Free;
    end;
    end;
    PS:不要在Create事件写这些东西!