dll文件

java使用JNA框架调用dll动态库

匿名 (未验证) 提交于 2019-12-02 21:53:52
这两天了解了一下java调用dll动态库的方法,总的有三种:JNI、JNA、JNative。其中JNA调用DLL是最方便的。 ・ JNI ・ JNA ・ JNative 使用JNative调用DLL除了要引入jar包外还需要额外引入一个dll文件,而JNA只需要引入jar即可使用。 使用JNA框架调用DLL动态库,步骤如下 : 1.导入JNA支持的jar包 添加 jna-4.x.x.jar、jna-platform-4.x.x.jar到项目buildpath中( Maven项目可在中央仓库中搜索JNA的相关依赖添加到项目中) 2.代码调用DLL动态库方法 import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Platform; import com.sun.jna.win32.StdCallLibrary; /** * JNA框架DLL动态库读取调用示例类 * @ClassName: DllCall * @Description: 读取调用DLL动态库文件中的方法 * @author : LinWenLi * @date: 2018年7月18日 上午10:32:16 */ public class JNADllCall { /** * DLL动态库调用方法 * @Description:

DLL的创建和使用

雨燕双飞 提交于 2019-12-02 18:52:29
使用Visual Studio 2019创建DLL 新建动态链接库(DLL)项目,此处我的项目名称为DLL。 编写自己的头文件。 #pragma once #ifdef DLL_EXPORTS #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif extern "C" DLL_API int test(int, int); 注意:DLL_EXPORTS为项目名称_EXPORTS,否则生成解决方案会出现dll链接不一致的警告。 编写自己的源文件。 #include "pch.h" #include "DLL.h" int test(int a, int b) { return a + b; } 注意:一定要包含pch.h文件,VS2017之前为stdafx.h。 生成解决方案。至此DLL创建成功,我们需要的头文件(.h),库文件(.lib)和动态链接文件(.dll)已经全部具备。 使用DLL 创建控制台项目。 编写测试程序。 #include <iostream> #include "DLL.h" int main() { std::cout << "Hello World!\n" << test(1, 2) << std::endl; }

Delphi 调用C# 编写的DLL方法

旧巷老猫 提交于 2019-12-02 16:12:05
近来,因工作需要,必须解决Delphi写的主程序调用C#写的dll的问题。在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行: 编写C#dll的方法都一样,首先在vs2005中创建一个“类库”项目TestDll, using System.Runtime.InteropServices; namespace TestDll { public interface I TestClass { void YourProcedure(stirng param1); } [ClassInterface(ClassInterfaceType.None)] public class TestClass:I TestClass { public void YourProcedure (stirng param1); { //自己的代码 } } } 完成之后,设置项目的属性“Make assembly COM-Visible”为选中状态。编译之后得到 TestClass.dll,把此dll放到Delphi主程序目录下。打开vs2005自带的工具“Visual Studio 2005命令提示”,输入 Regasm 路径/TestClass.dll 向系统注册此dll。 Delphi程序调用此Dll方式有两种: 一、打开vs2005自带的工具“Visual Studio 2005命令提示”,输入

PHP安装amqp拓展(win环境)

旧时模样 提交于 2019-12-02 15:49:51
安装php扩展amqp 先查看自己的php版本 记住版本 至于这个线程安全问题 这里引用了别人的自己看看吧 http://blog.csdn.net/aoyoo111/article/details/19021295 接下来下载dll文件 地址 http://pecl.php.net/package/amqp 下载稳定版的,点击DLL php版本 , X86 和X64 根据自己情况 , NTS 和 TS 就是那个thread safty 的状态 这个大家都会看吧 就不多说了 下载解压 将php_amqp.dll文件放到php目录的ext文件夹下 见下图: 将rabbitmq.4.dll文件放到php根目录 见下图: php.ini里面添加 1 extension=php_amqp.dll    apache 修改http.conf 文件 添加 1 LoadFile "D:/XAMPP/php/rabbitmq.4.dll"    之后重启apache 转载自:https://www.cnblogs.com/88phper/p/8296066.html 来源: https://www.cnblogs.com/guliang/p/11743202.html

warning C4273: ****.dll链接不一致

不羁的心 提交于 2019-12-02 15:03:57
方法1: 选择项目->属性->预处理器->预处理定义, 增加:HYCOMMONWINAPI_EXPORTS 方法2: 就是在 #ifdef HYCOMMONWINAPI_EXPORTS #define HYCOMMONWINAPI_API __declspec(dllexport) #else #define HYCOMMONWINAPI_API __declspec(dllimport) #endif 前面增加 #define HYCOMMONWINAPI_EXPORTS 其实这两种方法都是增加定义 方法3:在你的dll cpp文件中把 #define HYCOMMONWINAPI_EXPORTS 加在#include <接口文件.h> 的前面 方法4:右击dll工程 -- 属性,打开属性页,展开:配置属性 -- C++ --预处理器,在预处理器定义的最后面填入:_AFXEXT,再次编译则搞掂。 以上方法逐一试下,不知道能不能帮到你。另外这种问题最好去CSDN社区去问比较好,百度上牛X的人比较少,我就经常去CSDN。 非常郁闷的是,这个问题在relaese dll时又会出现,而且,上面的第4种解决方式没有作用,其它的几种方式暂时不甚了解到底怎么操作,因为第3种方法按它的做,出错 ---------------------------------------------------

C# - *.dll vs *.lib (动态链接库 vs 静态链接库)

点点圈 提交于 2019-12-02 12:34:53
静态库 库(Library)就是一段 编译好的二进制代码 ,加上头文件就可以使用。 静态链接库(Windows 下的*.lib, Linux & Mac 下的 .a)。之所以叫做静态,是因为静态库在 编译 的时候会被直接拷贝一份,复制到目标程序里,这段代码在目标程序里就不会再改变了。 优点: 1、编译完成之后,库文件实际上就没有作用了。目标程序没有外部依赖,直接就可以运行。 2、代码装载速度快,执行速度略比动态链接库快。 缺点: 1、会使用目标程序的体积增大。 2、包含相同的公共代码,造成浪费,扩展性较差。 动态库 动态链接库(Windows 下的*.dll, Linux & Mac 下的 .dylib)。与静态库相反,动态库在编译时并不会被拷贝到目标程序中,目标程序中只会存储指向动态库的引用。等到程序运行时,动态库才会被真正加载进来。 优点: 1、不需要拷贝到目标程序中,不会影响目标程序的体积,而且同一份库可以被多个程序使用(因为这个原因,动态库也被称作共享库)。同时,编译时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码。 2、更加节省内存并减少页面交换。 3、可维护性和可扩展性高。 4、适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。 缺点: 1、动态载入会带来一部分性能损失,使用动态库也会使得程序依赖于外部环境。

静态链接库、动态链接库

我的梦境 提交于 2019-12-02 10:50:07
1.代码的重用 一般在程序中,代码重用可以用函数来实现; 给其它程序重用代码的实现有两种方式: 1】静态链接库 2】动态链接库 也就是可以用来实现模块化; 1.静态链接库 1)创建静态链接库 vc6中创建:File ->new ->Projects ->Win32 Static Library 头文件: #if !defined(AFX_HELLO_H__0A93BBBF_3714_47C0_A953_6BC530AAD15A__INCLUDED_) #define AFX_HELLO_H__0A93BBBF_3714_47C0_A953_6BC530AAD15A__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 int Plus(int x, int y); int Sub(int x, int y); int Mul(int x, int y); int Div(int x, int y); #endif // !defined(AFX_HELLO_H__0A93BBBF_3714_47C0_A953_6BC530AAD15A__INCLUDED_) cpp文件: #include "Hello.h" int Plus(int x, int y) { return x+y; }   int

【小众软件】2345浏览器纯IE内核版

时光怂恿深爱的人放手 提交于 2019-12-02 10:42:20
总有一些奇怪的场合只能使用IE内核的浏览器。而2345浏览器作为一款一直以来都是非常好用的浏览器,如果安装极速版(Chrome)内核版,往往觉得太大,因此,这里是原创修改的2345浏览器纯IE内核版,去除了升级。 ■ 软件截图 ■修改 说明 基于2345浏览器2.3.8898修改,去除了升级提示。 原生自带了ADBLOCK插件,但是在IE内核上效果不好 ■ 修改原理 2345浏览器的升级是基于一个名叫CoralUpdate.dll的dll库来完成的。禁用升级有两个方法,一个是销毁这个dll文件,另一个是用其他dll代替这个dll文件。本版本直接删除了CoralUpdate.dll文件。 ■ 下载地址: 蓝奏云 来源: https://blog.csdn.net/gzming2009/article/details/102750576

使用reflector反编译exe文件和dll文件

梦想与她 提交于 2019-12-02 02:25:52
使用reflector反编译exe文件和dll文件 使用reflector反编译exe文件和dll文件 使用reflector反编译exe文件和dll文件 由于数据库迁移,导致原来的单机软件需要更改一下数据库连接。直接使用reflector查看exe文件和dll文件。 其中有connstr连接字符串,但是在哪里给这个连接字符串赋值,一直找不到。 来源: CSDN 作者: fudanstar 链接: https://blog.csdn.net/star535X/article/details/83045533

将VBA操作封装为DLL组件并在EXCEL中调用

夙愿已清 提交于 2019-12-01 22:20:22
使用程序: 1、Microsoft Office Excel 2003 2、Microsoft Visual Basic 6.0 案例:在工作表的C1单元格得出A1单元格+B1单元格的值。 设计的VBA代码: Sub Test() On Error Resume Next Range("C1") = Cells(1, 1) + Cells(1, 2) End Sub 第一部分、使用VB6.0制作DLL文件 一、 启动VB6.0,新建一个ActiveX DLL工程: 二、 引用:在VB中对Excel的引用 不同版本的EXCEL在“引用”窗口里显示的版本号也不同: EXCEL2000(Microsoft Office 9.0) EXCEL2002(Microsoft Office 10.0),即ExcelXP EXCEL2003(Microsoft Office 11.0) EXCEL2007(Microsoft Office 12.0) EXCEL2010(Microsoft Office 14.0) EXCEL2013(Microsoft Office 15.0) 三、 修改ActiveX DLL的工程名称和类模块名称 四、编写代码: 在代码窗口输入代码,过程名称为Test: Sub Test() On Error Resume Next Dim VBt, YB '定义变量VBt