157239486 发表于 2022-4-18 11:40

寻找一款练手的DLL文件

最近在研究JNA,就是用java调用c/c++之类的方法,想要拿dll来实战,
想要一个dll文件,里面包含各种方法,方法参数带结构体(java叫对象,不知道其他语言叫什么),最好就是常用的类型都有(int,String 数组 包装类 对象)都有,这样我实战定义的时候才能实战到位。
需要带头文件,否则只有dll,没法清楚里面什么方法,和参数是什么类型。提前感谢。(ps:方法里最好有输出,这样我调用的时候能看到结果,当然没有也没关系)

pzx521521 发表于 2022-4-18 11:40

本帖最后由 pzx521521 于 2022-4-18 14:17 编辑

https://wwu.lanzouf.com/il7Oo03ea9kh
注意位数, jna 必须和dll的位数对应

sam喵喵 发表于 2022-4-18 11:48

自己写一个啊

157239486 发表于 2022-4-18 12:04

sam喵喵 发表于 2022-4-18 11:48
自己写一个啊

这话说的,第一我本地没开发环境,第二不是专业做这个的,写还得去学,想直接拿个现成的来用。毕竟会做这个的人写这些很快,不想浪费时间。

songxp03 发表于 2022-4-18 12:38

试着调用flashplayer安装后的那个ocx,也是dll,看看能不能做一个flashplayer。github上有个flash sink的开源就是类似功能

ly765893958 发表于 2022-4-18 13:41

https://wws.lanzoul.com/iWRth03e8hadTXGYMailCamera.dll   调用函数CameraWindow可以截图不需要传参你试试看算是很简单的一个了

LogerLaw 发表于 2022-4-18 13:54

JNA也可以调用C#吧,试试LitJSON怎么样?一个轻量级的json解析处理库
https://litjson.net/

157239486 发表于 2022-4-18 15:08

pzx521521 发表于 2022-4-18 14:10
https://wwu.lanzouf.com/il7Oo03ea9kh
注意位数, jna 必须和dll的位数对应

64位,能不能加两个 一个是参数是对象的,一个是返回包含对象的,不要简单的基本类型

pzx521521 发表于 2022-4-18 16:33

本帖最后由 pzx521521 于 2022-4-18 16:39 编辑

dll在vs里面和mingw里面是不一样的
一般用 extern "C" 来兼容, 但是纯C 是不支持传对象的

vs 编译出来的 是可以看到导出函数的(.lib文件) 显式/隐式都可以
mingw 编译出来的 是看不到导出函数的(.a文件) 只能隐式

jna里面的类转换没有转换过估计不简单
包里面都给你编译上你看那个能用

实际操作中很少跨语言调用对象 因为各个语言底层的东西不一样 比如各种类型占用的字节数

https://wwu.lanzouf.com/ixt1W03el29a

157239486 发表于 2022-4-18 18:01

pzx521521 发表于 2022-4-18 16:33
dll在vs里面和mingw里面是不一样的
一般用 extern "C" 来兼容, 但是纯C 是不支持传对象的



朋友,你生成的不是64位的吧。
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'E:\jnacreator\DllDemo':
%1 不是有效的 Win32 应用程序。
页: [1] 2
查看完整版本: 寻找一款练手的DLL文件