`
美丽的小岛
  • 浏览: 310902 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Delphi开发DLL,Java调用DLL

 
阅读更多

用一个小例子来示范一下,不写文件字。

第一步

第二步,

Dynamic-link Library就得,生成如下:

编写自己的Dll

 

 

library Add;

 

uses

  SysUtils,

  Classes;

 

{$R *.res}

 

function addFunABC(a, b: integer): integer; stdcall;

begin

  result := a + b;

end;

 

exports

  addFunABC;

 

begin

end.

 

Dlephi调用DLL

 

创建一个VCL,动态加载DLL

 

procedure TForm1.Button1Click(Sender: TObject);

type

  TAddFunc = function (a, b: integer): integer; stdcall;

var

  Th:Thandle;

  Tf:TAddFunc;

  Tp:TFarProc;

begin

  Th:=LoadLibrary('MyAdd.dll'); {装载DLL}

  if Th>0 then

    try

      Tp:=GetProcAddress(Th,PChar('addFunABC'));

      if Tp<>nil then

      begin

        Tf:=TAddFunc(Tp);

        Edit1.Text:=IntToStr(Tf(2, 3)); {调用函数}

      end

      else

        ShowMessage('addFunABC函数没有找到');

    finally

      FreeLibrary(Th); {释放DLL}

    end

  else

   ShowMessage('MyAdd.dll没有找到');

end;

 

 

 

JAVA调用(JNative.jar)

 

import org.xvolks.jnative.JNative;

import org.xvolks.jnative.Type;

import org.xvolks.jnative.exceptions.NativeException;

import org.xvolks.jnative.misc.basicStructures.LONG;

publicclass Apllication {

    /**

     * java调用Dll,采用JNative;

     * JNative里面有三个主要的包:

     *     For Windows:

     *     For Linux:

     *     JNativeJar包:   JNativeCpp.dlllibJNativeCpp.soJNative.jar     

           JNativeCpp.dll Windows下用的,拷贝到windows / system32目录下;

           libJNativeCpp.so Linux下的,拷贝到系统目录下;

           JNative.jar 这是一个扩展包,导入工程LIB中或将其拷贝到jdk\jre\lib\ext 下,系统会自动加载

     */

    publicstaticvoid main(String[] args) throws NativeException,

           IllegalAccessException {

       JNative n = new JNative(            "C:\\Users\\Administrator\\Desktop\\MyFirstDll\\MyAdd.dll", "addFunABC"); //

       LONG a = new LONG(2);

       n.setParameter(0, Type.INT, a.toString());

       LONG b = new LONG(3);

       n.setParameter(1, Type.INT, b.toString());

       n.setRetVal(Type.INT);

       n.invoke();

       System.out.println(n.getRetVal());

    }

}

 

 

 

  • 大小: 123 KB
  • 大小: 16.4 KB
  • 大小: 44 KB
1
1
分享到:
评论

相关推荐

    Delphi创建Dll和调用Dll示例(包含Dll窗体调用)

    Delphi创建Dll和调用Dll示例(包含Dll窗体调用) 网上介绍比较杂乱,特地整理了一份Demo代大家学习参考。 1.socketA_dll 为dll工程目录。 2.LoadDllDemo 为【静态调用】dll工程目录。 3.LoadDllDemo_动态调用 为...

    Java调用Delphi开发的Dll小结[归类].pdf

    本文主要讨论了两种方法,使得Java应用程序能够调用由Delphi开发的DLL动态链接库。这两种方法分别是:通过JNI(Java Native Interface)和使用JNA(Java Native Access)第三方组件。 1. **JNI调用Delphi开发的DLL*...

    DelphiDll创建与调用

    DelphiDLL创建与调用是Windows应用程序开发中的一个重要技术,它允许我们把一些常用功能封装到一个DLL(Dynamic Link Library)文件中,然后在多个应用程序之间共享这些代码,以提高程序的复用性和效率。本篇文章将...

    delphi调用C# DLL

    - 这将创建一个新的单元文件,其中包含了用于调用DLL组件的方法声明。 2. **实例化并调用DLL中的方法**: - 可以通过两种方式实例化.NET组件对象:直接创建对象或使用变体。 - 直接创建对象示例: ```pascal ...

    Delphi调用c++ DLL技术文档

    由于Delphi和C++在数据类型定义上存在差异,因此在调用DLL函数时要注意类型转换。例如,C++中的`wchar_t`在Delphi中通常对应`WideString`类型。 #### 3.3 错误处理 在实际应用中,可能遇到DLL找不到、函数地址无效...

    delphi 调用DLL 及释放例子

    本示例将深入讲解如何在Delphi中调用DLL以及正确释放资源。 首先,创建DLL项目。在Delphi中,选择“新建”然后选择“动态链接库(DLL)”模板。在DLL工程中,你可以定义要导出的函数。例如,我们可以创建一个简单的...

    Delphi7静态动态调用VS2019 C#开发的非托管DLL且整合DLL

    在IT行业中,跨语言通信是常见的需求,本案例聚焦于如何使用Delphi 7静态或动态地调用由VS2019中的C#编译的非托管DLL,并将其整合到DLL项目中。非托管DLL是指不依赖.NET Framework运行时环境的DLL,这使得它可以在不...

    Delphi 几种常见的Dll调用方法l

    下面将详细阐述Delphi7中调用DLL的几种常见方法。 1. **LoadLibrary 和 FreeLibrary** - `LoadLibrary` 是 Windows API 中的一个函数,用于加载指定的 DLL 文件,并返回一个句柄,表示 DLL 在进程中的实例。 - `...

    delphi 从外部Dll中调用子窗体

    本文将深入探讨如何在Delphi中从外部DLL调用子窗体,以及涉及的相关知识点。 首先,理解DLL的基本概念是必要的。DLL是一种可执行文件格式,它包含可被多个程序同时使用的函数和资源。通过使用DLL,开发者可以减少...

    Delphi 10.2版本编译dll和调用dll.rar

    总之,掌握在Delphi 10.2中创建和调用DLL是一项重要的技能,它能帮助你构建可复用的组件和模块,提高代码的灵活性和维护性。通过深入学习和实践,你将能够灵活运用这些技术来解决各种编程问题。

    C#调用Delphi dll库文件

    首先,理解基本原理:C#调用DLL主要依赖于P/Invoke(Platform Invoke)特性,这是.NET Framework提供的一种机制,使得托管代码能够调用非托管代码,如WinAPI或由其他语言如C++、Delphi编译的DLL。Delphi DLL的导出...

    DelphiXE10.3编写的静态dll及如何调用dll的示例

    5. **使用和释放**:调用DLL提供的方法执行所需功能,完成后,根据需要释放接口实例。 在提供的压缩包中,`ProjectGroup1.groupproj`和`ProjectGroup1.groupproj.local`是Delphi项目组文件,用于管理和组织相关项目...

    delphi动态调用Dll

    综上所述,动态调用DLL是Delphi开发中的一项重要技能,它能帮助你构建更加灵活、可扩展的应用程序。熟练掌握这项技术,可以让你在处理跨语言交互、模块化设计以及运行时功能扩展等问题时游刃有余。

    Delphi开发DLL插件用DLL封装应用程序资源

    本篇文章将深入探讨如何使用Delphi来开发DLL插件,并通过DLL封装应用程序资源,以实现更高效、灵活的代码管理和资源共享。 首先,理解DLL的基本概念至关重要。DLL文件本质上是可执行文件,其中包含了可被其他应用...

    手把手教你用Delphi写DLL调用DLL

    本教程将详细讲解如何使用Delphi这一强大的对象 Pascal 编程语言来创建和调用DLL。Delphi由于其直观的IDE和高效的编译器,使得在Windows平台上开发DLL变得尤为便捷。 首先,我们需要了解DLL的基本概念。DLL文件本质...

    手把手教delphi写你的dll文件

    本文将详细介绍如何使用Delphi编写DLL文件,并提供静态调用DLL的具体步骤和示例代码。此外,还将对比静态调用与动态调用两种方式的不同之处。 #### 二、静态调用DLL的基本原理 静态调用DLL是指在编译时将DLL的信息...

    delphi dll文件调用.rar_delphi_delphi dll文件调用

    DLL 文件的创建和调用是 Delphi 开发中的重要技能。 首先,我们要理解什么是DLL。DLL 是 Dynamic Link Library 的缩写,它是一种包含可由多个程序同时使用的函数和其他资源的库。在 Delphi 中,我们可以通过创建一...

    delphi的DLL调用

    在本篇文章中,我们将深入探讨如何在Delphi中创建和调用DLL,以及如何在额外的小程序中使用DLL中的加法函数。 首先,我们来理解DLL的工作原理。DLL文件是Windows操作系统中的一种特殊类型文件,它们包含了一组函数...

    delphi dll静态调用 动态调用 实例

    // 调用DLL中的函数 MyFunction := Pointer(ProcAddress); MyFunction(); // 假设MyFunction无参数无返回值 end else ShowMessage('Function not found in DLL.'); finally // 卸载DLL FreeLibrary(hDLL);...

    java 调用delphi写的dll的全套资料,可运行

    Java调用Delphi编写的DLL(动态链接库)是一种跨平台和语言的集成技术,它允许Java应用程序利用Delphi DLL中的功能。以下是一份详细的知识点解析,涵盖了这个主题的各个方面: 1. **Java Native Interface (JNI)**:...

Global site tag (gtag.js) - Google Analytics