这一句没错的,这样赋值完全正确。
你的问题我认为是出在dll调用上,
你可以试着把bSuccedd := true;这句注释掉,
然后再是一下,你会发现错误还是会出现。

解决方案 »

  1.   

    delphi 中dll问题往往是 string\pchar 的问题
      

  2.   

    出错的应是CleanFolder(FolderName,bDeleteReadOnly,bSuccess);
      

  3.   

    应该是调用的问题
    你声明dll时也可能出错
    func.... "yourdll.dll" stacall
    如果没有指明默认是register调用
    先getmem为FolderName变量赋值
      

  4.   

    这种赋值方式合适吗Result安全些吧
      

  5.   

    这是程序中调用的部分,我以前也这么用没有问题
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    function RemoveFolder(FolderName:PChar;bDeleteReadOnly:boolean;bDeleteFolder:boolean):boolean;stdcall;external 'FileIO.dll';
    var
      Form1: TForm1;implementation
      

  6.   

    请你在看一下DLL前面的注释
    { Important note about DLL memory management: ShareMem must be the
      first unit in your library's USES clause AND your project's (select
      Project-View Source) USES clause if your DLL exports any procedures or
      functions that pass strings as parameters or function results. This
      applies to all strings passed to and from your DLL--even those that
      are nested in records and classes. ShareMem is the interface unit to
      the BORLNDMM.DLL shared memory manager, which must be deployed along
      with your DLL. To avoid using BORLNDMM.DLL, pass string information
      using PChar or ShortString parameters. }ShareMem 这个单元很重要