只是要显示一个对话框,为何要分配一个缓冲区呢?声明一个变量,其实就是在声明一个缓冲区吗?下面这段代码只是显示系统文件的目录,为何要声明一个长度为255字符数组变量?,来装这个内容?普通变量不行吗?procedure TForm1.Button1Click(Sender: TObject);   
var  
huanc:array[0..256]of char;   
begin  
getsystemdirectory(huanc,sizeof(huanc));   
showmessage(huanc);   
end;  

解决方案 »

  1.   

    那么lz觉得申明1个什么类型的变量比较好呢?这样做的目的是为了和API兼容
      

  2.   

    因为Windows不认识String这种Delphi的数据类型,只认识C格式以\0结束的字符串啊
      

  3.   

        GetSystemDirectory是Windows API函数,Windows API是使用C/C++语法调用的,Delphi使用Pascal语法进行来包装
        function GetSystemDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall;另外:
        String类型是Delphi中定义的,C/C++中没有与之等价的数据类型
      

  4.   

     GetSystemDirectory是Windows API函数,Windows API是使用C/C++语法调用的,Delphi使用Pascal语法进行来包装 
        function GetSystemDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall; 另外: 
        String类型是Delphi中定义的,C/C++中没有与之等价的数据类型