JAVA调用动态链接库(dll)】的更多相关文章

    菜鸡爬坑 基础知识  因为某个东西的keygen我只会在win下生成!! 所以只能出此下策!!之前一直是android下用jni调用so文件,现在试下java在win平台下调用dll 首先还是老套路,直接在dll中弹出一个信息框具体流程如下:在Java中定义一个方法,在C++中实现这个方法,在方法内弹出信息框.首先在java中定义一个类 代码: package cn.ylca.dll; public class DllEntity { //本地方法          public nat…
package com.ehfscliax; import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.nio.charset.Charset; import org.xvolks.jnative.JNative; import org.xvolks.jnative.Type;import org.xvolks.jnative.exceptions.NativeException; imp…
paip.java 调用c++ dll so总结 ///////JNA (这个ms sun 的) 我目前正做着一个相关的项目,说白了JNA就是JNI的替代品,以前用JNI需要编译一层中间库,现在JNA直接调用C的库 JNA的功能和P/Invoke类似,但编写方法与P/Invoke截然不同.JNA没有使用Annotation,而是通过编写一般的Java代码来实现. P/Invoke是.NET平台的机制.而JNA是Java平台上的一个开源类库,和其他类库没有什么区别.只需要在classpath下加入…
Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector");//载入需要调用的dll Connector.dll System.load("d://Connector.dll");//载入dll Connector.dll } //用native关键字修饰将被其它语言实现的方法 //dll文件中对应的函数声明 public native stat…
本文将详细为大家介绍一个java调用.net DLL的方法,以实现特殊的客户的特殊要求:“在Java项目中必须使用其提供的用.net写的DLL加密机制!” 环境与工具: ◆.net framework 3.5 C# ◆java jdk1.5, Tomcat 5.5 ◆jacob-1.15-M3 实现例子: 一.C# 制作Com组件 新建一个Class 项目,取名TestCom 代码 using System; using System.Collections.Generic; using Sys…
首先介绍一下JNI吧! JNI 是Java提供的一个用于调用本地接口的接口层,位于Java代码 和 本地代码之间的一层:主要功能是 数据类型的转换,还有就是通过这一层来调用本地代码! 下面就说说Java 调用 C++  dll是怎么实现的吧! 1.首先用Java代码制作接口层 package NEU.SOFT; public class NEUdll { public NEUdll() { } //供Java调用的本地代码 public native char[] Descrypt(boolea…
一 编写动态链接库DLL DLL简称动态链接库,是Windows中程序的重要组成部分.想象一下,一个程序需要多人共同完成开发,怎么个共同法?这时我们就要考虑把程序分为好几个模块,团队每一个成员开发一个模块.问题来了:如何将模块组合并成一个完整系统?还有,我们开发的软件需要不断升级,如何升级?难道每次非得把整个工程重新编译一次再发布给用户吗?解决这些问题的科学办法,就是开发动态链接库DLL.现在以开发myDLL.dll动态链接库为例,讲讲BCB中开发动态链接库的方法.1.新建立一个工程:File-…
什么是动态库? 动态库一般又叫动态链接库(DLL),是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库. 动态链接提供了一种方法 ,使进程可以调用不属于其可执行代码中的函数.函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译.链接并与使用它们的进程分开存储的函数.DLL还有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容. 动态链接与静态链接区别? 我们都知道,我们在编程时会调外部库函数,因为程序的中许…
在这个时候,我们可以使用的java技术有jni.jna.jnative,这个大部分都可以完成任务.但是有时候我们在实际情况中拿到的dll有变化,当我们需要用的函数是在dll中的类里面的话,我们再使用前面的3种方法就会报Error looking up function '方法名'. 所以在这个时候就可以使用jacob,这个就可以访问得到了. java代码事例: public static String CreateBstrCommand(long controllerSN,String strF…
最近一个项目要开发网页端人脸识别项目,人脸识别的算法已经写好,是C++版,但是网页端要求使用Java后台,这就涉及到Java调用DLL的问题.经过查找,实现了一个简单的例子. 1.第一步,先在Java中新建一个类 如上图,其中注意这句System.loadLibrary("javaCallcpp");,这就是加载dll文件的代码了.然后我们需要dll中实现下面定义的加减乘除方法. 2.编译文件,文件名为Java2cpp.java,首先编译成class文件,如果用的是eclipse,这个…
动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现.  动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL调用来完成一定操作的函数(方法.注:C#中一般称为“方法”),但这些函数不是执行程序本身的一部分,而是根据进程的需要按需载入,此时才能发…
1 在强大的c#语言和java语言之间,二者难免会因为某些特殊的要求会相互调用. 下面就以java调用c#的dll为例做详细介绍 1  在vs中的环境设置如下图,图片中程序仅作为讲解程序,在项目编译成功的前提下,右键项目—>应用程序—>目标框架[选择如下图,根据机器的.netframework环境决定,一般用4]-->点开程序集信息—>勾选是程序集COM可见 复选框,然后再重新生成项目 2 准备已生成好的dll文件,其中主要类是lcjPlug_v01.dll,Newtonsoft.…
踩过了很多的坑,查了很多资料,在此记录一下,以SpringBoot项目为基础. Maven加入JNA依赖 <!-- JNA start --> <dependency> <groupId>com.sun.jna</groupId> <artifactId>jna</artifactId> </dependency> <!-- JNA end --> 动态链接库放在classpath下的natives文件夹下 主…
近期的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作. 在调用中假设路径中包括有中文字符就会出现故障.程序执行就会中止. 以下用一个小样例,来说明记录下解决办法. java中传入一个字符串,调用c++代码将字符串输出 public class CommonUtil { static { System.loadLibrary("nativeTest"); } public native static void Print(String…
刚来到公司,屁股还没坐稳,老板把我叫到办公室,就让我做一个小程序.我瞬间懵逼了.对小程序一窍不通,还好通过学习小程序视频,两天的时间就做了一个云开发的小程序,但是领导不想核心的代码被别人看到,给了我一个dll文件.找了大量的资料,还是用Java做吧,于是又快速的用Java搭建了一个后台,测试了一下,发现dll调用成功了,但是在发布到服务器上的时候,dll文件又不行了,又找方法.发现so文件和dll文件一样,都是打包生成的动态链接库,于是就在服务器上测试调用so文件,在调用so文件的时候出现了很多…
由于项目需要,利用了短信猫,但是一个短信猫会加载多个串口,而只需要其AT口,通过java代码,获取其AT口对应的串口号比较困难,于是通过C#获取,这里直接调用C#生成的DLL,但java不能直接调用C#生成的DLL,需要用C++作为桥接,这里介绍一种方法调用C#所生成的DLL文件. 开发环境为:Myeclipse10.0 VS2010 1.首先创建一个Java文件,命名为TestJNI,代码如下: package msg; public class TestJNI { public native…
首先用vc建立一个dll工程 然后在里面建立一个testunity.h文件.内容如下 1 extern "C" int _declspec(dllexport)testunity(); 保存,ok,在建立一个testunity.cpp,代码如下: 1 2 3 4 5 #include "testunity.h" int testunity() {       return 0;//这是函数,里面可以写你想要实现的任何功能 } 然后编译.组建.就生成了testunit…
转自:http://blog.csdn.net/testcs_dn/article/details/27237509 本文将创建一个简单的动态链接库,并编写一个控制台应用程序使用该动态链接库,该动态链接库为“JAVA调用动态链接库DLL之JNative学习”中使用的DLL,只是项目及文件名称不同. 创建动态链接库项目:1.打开Microsoft Visual Studio 2010,选择文件->新建->项目. 2.在新建项目窗口中选择其他语言->Visual C++->Win32.…
本文将创建一个简单的动态库-link,谱写控制台应用程序使用该动态链接库,该动态链接库为"JAVA调用动态链接库DLL之JNative学习"中使用的DLL,仅仅是项目及文件名不同. 创建动态链接库项目:1.打开Microsoft Visual Studio 2010,选择文件->新建->项目. 2.在新建项目窗体中选择其他语言->Visual C++->Win32. 3.选择Win32 项目,设置名称:simpleDLL.设置解决方式名:simpleDLL.4.…
这里主要用的方法是JNI.在网上查资料时看到很多人说用JNI非常的复杂,不仅要看很多的文档,而且要非常熟悉C/C++编程.恐怕有很多人在看到诸如此类的评论时已经决定绕道用其他方法了.本文将做详细的介绍. AD:51CTO网+ 首届中国APP创新评选大赛火热招募中-- 最近在用weka做一个数据挖掘相关的项目,不得不说,weka还是一个不错的开放源代码库,提供了很多最常用的分类和聚类算法. 在我的项目中要用到一个聚类算法,Affinity Propagation(AP),由多伦多大学的Brenda…
Atitit.java jna 调用c++ dll 的总结 1. JNA技术解密1 1.1. JNA工作原理1 2. JNA技术难点 Java—C和操作系统数据类型的对应表1 2.1. 1 2.2. JNA编程过程3 2.2.1. 跨平台.跨语言调用的第一原则:就是尽量使用基本.简单的数据类型,尽量少跨语言.平台传递数据!4 3. 参考4 1. JNA技术解密 1.1. JNA工作原理 JNA是建立在JNI技术基础之上的一个Java类库,它使您可以方便地使用java直接访问动态链接库中的函数.…
转自这里 最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 vs2005 1.新建工程:ClassLibrary1       //根据自己需要取工程名 2.右键点击工程->应用程序->程序集信息->使程序集com可见,打上勾 右键点击工程->生成->为com Int…
最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 vs2005 1.新建工程:ClassLibrary1       //根据自己需要取工程名 2.右键点击工程->应用程序->程序集信息->使程序集com可见,打上勾 右键点击工程->生成->为com Interop注…
Java不能直接调用由c或者c++写得dll(TF_ID.dll),所以只能采用jni得方法,一步一步生成符合规范得dll文件(假设叫FANGJIAN.dll),在FANGJIAN.dll这个文件里来调用TF_ID.dll.注意一点:两个dll文件不能重名,为什么呢?因为java后来执行时候,必须把两个dll文件均考到java得class文件同一目录下,或者把TF_ID.dll考到system32下也可以,如果重名得话,首先不能考到一个目录下,再则即使将前一个dll考到system32下,那么后…
参考文章:http://www.cnblogs.com/matthew-2013/p/3480296.html http://blog.csdn.net/g710710/article/details/7255744 首先探讨何为动态链接库,按照百毒百科的解释: [动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式.这些库函数的扩展名是 ”.dll".&qu…
一.新建Java工程,在Java类中声明一个native的方法 新建Java项目 在新建的项目中创建packet(包),并且在包下创建一个Class(类). 接下来,在该类中添加如下代码: ? 1 2 3 4 5 6 7 8 9 public class JavaInvodeCPlus {   //声明为native,表明是有外部来实现的   public native String returnHelloWorldToUpcase(String string);   public native…
源:java调用C/C++写的dll Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快速,也能带来跨平台性. Java调用C/C++写好的DLL库时,由于基本数据类型不同.使用字节序列可能有差异,所以在参数传递过程中容易出现问题,DLL中可能需要做相应的转换. 使用Java调用DLL动态链接库的方案通常有三种:JNI, Jawin, Jacob. 其JNI(Java Native Interface)是Java语言本身提供的调用本地已编译的…
@参考文章1,@参考文章2 根据上篇博客(参考文章2)java生成的dll测试 1,新建java项目,新建WebContent,子目录建WEB-INF\lib,加进jna-3.4.0.jar 新建java类调用dll import com.sun.jna.*; public class CallDll { public static void main(String[] args) { try { //调用dll中的方法 CLibrary.sdtapi.Java_Hello_printHello…
Java native关键字 一. 什么是Native Method   简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数.   "A native method is a Java method whose…
1.dll叫动态链接库,作用是用某种语言封装好某些函数生成可供不同语言调用的.dll文件,通常是用C++编写生成,因为C++可以对很多硬件操作方便而其他高级语言不行 2.dll生成参考:http://blog.csdn.net/elaine_bao/article/details/51784864 __declspec(dllexport) int add(int a, int b){ return a + b; } //__declspec(dllexport) 前面可加extern "C&q…