zoukankan      html  css  js  c++  java
  • 注册dll

    unit Unit1;

    interface

    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;

        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);

        type

         TDllRegisterServer = function:HResult; stdcall;
      private

        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}


    function RegisterServer(const aDllFileName: string; aRegister: Boolean): Boolean;
    type
      TRegProc = function: HResult;
      stdcall;
    const
      cRegFuncNameArr: array [Boolean] of PChar =
        ('DllUnregisterServer', 'DllRegisterServer');
    var
      vLibHandle: THandle;
      vRegProc: TRegProc;
    begin
      Result := False;
      vLibHandle := LoadLibrary(PChar(aDllFileName));
      if vLibHandle = 0 then Exit;
        @vRegProc := GetProcAddress(vLibHandle, cRegFuncNameArr[aRegister]);
      if @vRegProc <> nil then
        Result := vRegProc = S_OK;
      FreeLibrary(vLibHandle);
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    RegisterServer('EASendMailObj.dll',true);
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
     RegisterServer('EASendMailObj.dll',FALSE);
    end;

    end.

  • 相关阅读:
    Humidex
    Hangover(1.4.1)
    I Think I Need a Houseboat(1.3.1)
    Sum of Consecutive Prime Numbers
    Doubles
    Financial Management
    Nim算法------高僧斗法
    标题:猜灯谜
    银行管理系统
    三种例行程序(procdures,function,traps)的使用
  • 原文地址:https://www.cnblogs.com/onionhacker/p/3531794.html
Copyright © 2011-2022 走看看