• 注册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.

  • 相关阅读:
    uni-app中使用Echarts绘画图表
    css设置Overflow实现隐藏滚动条的同时又可以滚动
    JS判断在哪一端浏览器打开
    ElementUI分页Pagination自动到第一页
    第203场周赛
    TreeSet使用
    155 最小栈
    234 回文链表
    141 环形链表
    2 两数相加
  • 原文地址:https://www.cnblogs.com/onionhacker/p/3531794.html
Copyright © 2020-2023  润新知