关于DLL编程,我的程序已经制作好,
但是我想将这个程序分成模块:将模块编写成DLL文件
格式,不知如何实现

解决方案 »

  1.   

    关键是接口的标准化,看下我的这个模板(实际在用的):
    服务器端插件编写模板文件  
    //
    // -----------------------------------------------------------------------------------
    //
    //          服务器端插件编写模板文件   wgz. 2006.12.--2008.8.
    //
    // -----------------------------------------------------------------------------------
    //
    //
    // 导出函数原型:
    //
    // RemoteFunction: function(AdoConn: TAdoConnection;
    //                           InText: string;
    //                         InStream: TMemoryStream;
    //                      var OutText: string;
    //                    var OutStream: TMemoryStream): boolean; stdcall
    //
    // 其中入口参数:
    //
    // AdoConn:TAdoConnection对象的实例,是调用本模块的节点系统的数据库连接,注意用完后别断开
    // InText:TString类型的变量,包含有向本类模块提供的所有简单类型参数,中间以#9字符分隔
    // InStream:TStream对象的实例,包含可能存在的二进制类型的入口参数,若为nil,表示不存在
    //
    //
    // 其中出口参数:
    //
    // OutText:本模块处理结束后得到的简单类型结果数据,若有多项,以#9分隔
    // OutStream:本模块处理结束之后得到的二进制类型的结果,若不存在,返回nil
    //
    // -----------------------------------------------------------------------------------
    //
    library RemoteModule;                  {你可以改一下名字}uses
      sharemem,
      SysUtils,
      Classes,
      Windows,
      forms,
      graphics,
      AdoDB;{$R *.RES}const
      CAPTUREBLT = $40000000;//
    // 主函数...
    function RemoteProcess(AdoConn: TAdoConnection; InText: string; InStream: TMemoryStream;
             var OutText: string; var OutStream: TMemoryStream): boolean; stdcall;
    begin
    //
    // ----------------------------这里开始写你的程序-----------------------------------------
    // ----------------------------你的程序写到这里为止---------------------------------------
    //
    // 返回成功代码...
       result:=true;
    end;//
    // 向主程序提供的函数或过程的输出声明...
    exports
    RemoteProcess;//
    // 初始化代码...
    begin
    //
    end.