传路径撒!!搞那么麻烦;windows API 还不是一样需要传送 FileName:PChar

解决方案 »

  1.   

    var
      APath: string;    APath := GetModuleName(HInstance);
      

  2.   

    inifile:=tinifile.Create(ExtractFilePath(ParamStr(0))+'\11.ini');
      

  3.   

    你应该将路径打印出来
    比如
    path:=ExtractFilePath(ParamStr(0))+'11.ini'
    showmessage(path);
    这样就可以判断对不对了
    应该是少了一个'\'
    inifile:=tinifile.Create(ExtractFilePath(ParamStr(0))+'\11.ini');
      

  4.   

    mr_wn(法师) 说的对。
    如果不是你提问时的疏忽,应该就是这个原因了。
      

  5.   

    具体代码如下:DLL 中:procedure GetStrFromIni(Section, Ident: string;var aa:string); stdcall;
    var
      inifile: Tinifile;
    begin
      try
        inifile:=tinifile.Create(extractfilepath(Application.exename)+INIFILENAME);
        aa:=(inifile.ReadString(Section, Ident, 'test'));
      finally
        inifile.Free;
      end;
    end;调用程序中:
    procedure GetStrFromIni(Section, Ident: string;var aa:string); stdcall;external ‘11.dll’;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string ;
    begin
         GetStrFromIni('SYSTEM', 'LastUser',s);
         Edit1.Text:=s;
    end;出错信息: invalid pointer operation我把 DLL 中的 var aa:string 定义为 var aa:PCHAR 类型,也是有问题。请各位帮忙,分可以在加。谢谢!!!