在DLL中动态生成NMUUProcessor控件。并提拱函数操作它。

解决方案 »

  1.   

    在方法中根据输入的参数,然后处理后输出参数,如何写下面的输入和输出?
    在方法中如何调用输入参数?请写个简单的例子,谢谢!!procedure Tdeeml.Set_mname(const Value: WideString);
    beginend;function Tdeeml.Get_maccecount: Integer;
    beginend;function Tdeeml.Get_maccefiles: WideString;
    beginend;
      

  2.   

    你的意思是如何创建一个可供ASP调用的ActiveX Library吧?以Delphi 6为例:File/New/ActiveX/ActiveX Library,然后File/New/ActiveX/Active Server Object。这样编译出来的ActiveX Library中的Server Object可以像ASP中的File System Object一样调用。至于使用NMUUProcessor编码文件,可以参照
    pankun(剑神一笑) (2001-12-12 20:30:54) 
    在DLL中动态生成NMUUProcessor控件。并提拱函数操作它。  
      

  3.   

    忘了说一下,这个ActiveX Library在编译以后需要register一下,不然不能使用。如果你不明白的话,可以看一下COM相关的书籍。我想既然你会用ASP,应该有所了解的。
      

  4.   

    谢谢大家,已写好dll。
    1、编译成dll时,Object/options中的选项如何设置比较好,要在其它机子也可以用?
    2、在delphi中如何调用dll,这个dll有一个方法,两个输入参数和三个输出参数?
      

  5.   

    写成的dll中带有调用了TNMUUProcessor控件,编译通过,调用该dll时,出错?
    如何修改?这个dll的用途是输入一个base64编码的文件名,生成解码的文件。
    unit Unit1;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
      ComObj, ActiveX, AspTlb, maildebase64_TLB, StdVcl,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
      Dialogs, StdCtrls,NMUUE;type
      Tdebase64 = class(TASPMTSObject, Idebase64)
      private
        infile:string;
      protected
        procedure debase; safecall;
        procedure Set_emlname(const Value: WideString); safecall;
      end;implementationuses ComServ,Unit2;procedure Tdebase64.debase;
    var
    outfile:string;
    InStream,OutStream: TFileStream;
    base64:TNMUUProcessor;
    begin
        outfile:=infile+'txt';
        InStream := TFileStream.Create(infile, fmOpenRead);
        OutStream := TFileStream.Create(outfile, fmCreate);
        try
          base64.Create(nil);
          base64.Method:=uuMIME;
          base64.InputStream:=InStream;
          base64.OutputStream:=OutStream;
          base64.Decode;
        finally
          InStream.Free;
          OutStream.Free;
          base64.Free;
        end;
    end;procedure Tdebase64.Set_emlname(const Value: WideString);
    begin
      infile:=vartostr(Value);
    end;initialization
      TAutoObjectFactory.Create(ComServer, Tdebase64, Class_debase64,
        ciMultiInstance, tmApartment);
    end.
      

  6.   

    出现警告:[Warning] Unit1.pas(34): Variable 'base64' might not have been initialized如何修改?????????????????????