源程序:
procedure TForm1.writeClick(Sender: TObject);
var  
   dirstr:string;pfilename:pchar;
begin
   dirstr:=getcurrentdir();
   dirstr:=dirstr+'\scdb.ini';
   pfilename:=PChar(dirstr);
   WritePrivateProfileString('windows','load','accca',pfilename);
end;procedure TForm1.readClick(Sender: TObject);
var 
   strResult:pchar;dirstr:string;pfilename:pchar;
begin
   dirstr:=getcurrentdir();
   dirstr:=dirstr+'\scdb.ini';
   pfilename:=PChar(dirstr);
   GetPrivateProfileString('windows','load','er',strResult,100, pfilename);
end;
write事件能正确执行,但read事件执行就出错,能在delphi6下编译通过,不知为什么出错,请教大家,谢谢!

解决方案 »

  1.   

    应该是你函数GetPrivateProfileString用法错误!查查资料吧!这个函数我想应该是要返回一个字符串的值的,你在哪里接收这个返回值?
      

  2.   

    //strResult//没有分配资源~~
    var
      strResult: array[0..255] of Char;
    begin
      //
    end;
      

  3.   

    窗体上加个memo,read段改为
    procedure TForm1.readClick(Sender: TObject);var 
       strResult:pchar;dirstr:string;pfilename:pchar;
    begin
       dirstr:=getcurrentdir();
       dirstr:=dirstr+'\scdb.ini';
       pfilename:=PChar(dirstr);
       memo1.lines.Append(GetPrivateProfileString('windows','load','er',strResult,100, pfilename));
    end;
      

  4.   

    zswang你好
          我还是不太懂,你帮我写全read事件代码好吗?单单一句
          strResult: array[0..255] of Char;
          我不太懂!谢谢
      

  5.   

    GetPrivateProfileString('windows','load','er',strResult,100, pfilename);//wrong here!
    strResult :='';
    //strResult:pchar没有进行初始划,没有进行内存分配:
      

  6.   

    strResult :='';这样初始化还是出错!急!怎么回事?
      

  7.   

    //建议不要用getcurrentdir()~~
    //想想,如果程序建立快捷方式没有指定运行目录~~procedure TForm1.readClick(Sender: TObject);
    var
      strResult: array[0..255] of Char;
    begin
      GetPrivateProfileString('windows', 'load', 'er',
        strResult, 255, PChar(ExtractFilePath(ParamStr(0)) + '\scdb.ini'));
      { TODO }
    end;
      

  8.   

    var
      strResult: array[0..255] of Char;
    begin
      FillChar(strResult, 255, 0);
      GetPrivateProfileString('windows', 'load', 'er',
        strResult, 255, PChar(ExtractFilePath(ParamStr(0)) + '\scdb.ini'));
    end;
      

  9.   

    zswang你好
          下联,我也不太懂,我最怕语文了,sorry,帮不了你!
          非常谢谢你帮我解决了我的问题!