想把自己编写一部分过程或者函数制作为dll,让外界程序调用,怎么做?

解决方案 »

  1.   

    做DLL用New一个DLL项目就OK看书去http://lysoft.7u7.net
      

  2.   

    本网站
    点搜索->输入Dll->搜索
      

  3.   

    通过WINDOWS的消息机制,很容易实现的.
      

  4.   

    给个简单的代码,你参考一下吧:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,  OleCtrls, SHDocVw, 
       ExtCtrls;type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      URL:String;
    implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action:=caFree;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      WebBrowser1.Navigate(URL);
    end;end.
      

  5.   

    上边是DLL的代码,再给出调用的:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleCtrls, SHDocVw,ExtCtrls, StdCtrls, OleServer;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormShow(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  TShowBSForm = function(Ahandle:Thandle;URL:PChar):integer;stdcall;var
      Form1: TForm1;
       HInst1:THandle;
       FPointer1:TFarProc;
       
    implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    begin
      HInst1:=LoadLibrary('..\Project1.dll');
      if HInst1=0 then
      begin
        Application.MessageBox('没有找到程序运行所需要的动态链接库,程序启动失败','提示',MB_OK OR MB_ICONINFORMATION); 
        Application.Terminate;
      end;  FPointer1:=GetProcAddress(HInst1,'ShowBSForm');
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      FreeLibrary(HInst1);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      TShowBSForm(FPointer1)(Application.Handle,PChar('http://127.0.0.1/FromCS.ASP?Req=123456789'));
    end;end.