新建了一个DLL
其中有一个过程,是通过寻找资源配置文件中的值来进行赋值的,但是却老是不成功,help!
----------------------
DLL中
procedure setstr(initfilename,keyname:pchar);stdcall;
var
  tempname : pchar;
  name:string;
begin
  tempname := '初始值';
  GetPrivateProfileString(keyname,'Name','',tempname,length(tempname),initfilename);
  name := '名字:'+ tempname;  //每一次取得的name值都是为'初始值'!!!!!!!!
end;
----------------------
在程序中是这样调用的: setstr('C:\temp\temp.ini','test')
----------------------
在temp.ini文件中:
[test]
Name=

解决方案 »

  1.   

    name := '名字:'+ tempname;  //每一次取得的name值都是为'初始值'!!!!!!!!
    改成下面的试试
    name := '名字:'+ String(tempname);
      

  2.   

    改了也是不行。
    其实我想主要是GetPrivateProfileString()这个函数不起作用,因为tempname是能够得到值的,可是只能得到了初始的值,最后name := '名字:'+ tempname 的结果是"名字:初始值"。
      

  3.   

    你再仔细查查这个函数GetPrivateProfileString,第四个参数好像就是返回串
      

  4.   

    第四个参数返回的也是pchar类型的,是返回值。