zoukankan      html  css  js  c++  java
  • Delphi调用Dll的的2种写法

        
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    //定义类型要与原函数一样
    function GetUserDefaultUILanguage():Integer;external 'Kernel32.DLL';

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if GetUserDefaultUILanguage() = $0804 then
        begin
          Caption:='简体中文';
        end
        else
        begin
          Caption:='英文';
        end;
    end;
        

    //方法2 使用LoadLibrary
    procedure TForm1.Button2Click(Sender: TObject);
    var
       h:THandle;
       pFunc:function():Integer;stdcall;
    begin
       h:=LoadLibrary(PChar('Kernel32.DLL'));
       if h=0 then Exit;
       pFunc:= GetProcAddress(h,PChar('GetUserDefaultUILanguage'));
       if Assigned(pFunc) then

        if pFunc() = $0804 then
        begin
          Caption:='简体中文';
        end
        else
        begin
          Caption:='英文';
        end;

       FreeLibrary(h);
    end;
     
     
    procedure TForm1.Button3Click(Sender: TObject);
    var
       h:THandle;
       pFunc:function():Integer;stdcall;
    begin
       h:=LoadLibrary('Kernel32.DLL');
       if h=0 then Exit;
       @pFunc:= GetProcAddress(h,'GetUserDefaultUILanguage');
       if Assigned(pFunc) then

        if pFunc() = $0804 then
        begin
          Caption:='CHS';
        end
        else
        begin
          Caption:='ENGLISH';
        end;

       FreeLibrary(h);
    end;


    end.




    附件列表

    • 相关阅读:
      关于伸缩盒子的使用问题
      html5前端框架
      ES6 promise对象
      Node和Electron开发入门(四):操作PC端文件系统
      兄弟组件的传值
      端口冲突解决办法
      查看mysql状态的常用命令
      使用mysqldump导入导出MySQL数据库
      Yii CModel中rules验证规则
      URL中#号的含义
    • 原文地址:https://www.cnblogs.com/xe2011/p/3876098.html
    Copyright © 2011-2022 走看看