如何在.dll和.so中使用JNA与相同的回调签名
发布时间:2021-01-14 12:08:08 所属栏目:Linux 来源:网络整理
导读:我正在研究一个在Windows和Linux上运行的java项目,我正在使用第三方共享库,这两个操作系统可以使用相同的方法签名.但是,dll的调用约定是stdcall,而共享对象是cdecl. 我想避免重复回调代码,两个接口和两个类,每个调用约定一个接口.我想为回调函数编写一个代
|
我正在研究一个在Windows和Linux上运行的java项目,我正在使用第三方共享库,这两个操作系统可以使用相同的方法签名.但是,dll的调用约定是stdcall,而共享对象是cdecl. 我想避免重复回调代码,两个接口和两个类,每个调用约定一个接口.我想为回调函数编写一个代码.那可能吗? 在linux下访问.so的代码中唯一的变化是接口.回调函数代码本身是相同的.我会感激任何消化.
这是我为dll中的回调编写的代码:
谢谢, 费尔南多 最佳答案 您可以使用StdCallLibrary / StdCallCallback声明它们,但可能无法在所有平台上定义行为.在不支持备用调用约定的平台上忽略该选项(此时除了win32之外的所有内容),但未必在所有平台上进行测试.这是首选定义,它仅为windows定义stdcall库.
如果你只是针对linux和windows,那么单个界面就足够了(不过我建议测试一下):
(编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- iTools使用秘籍及闪退解决放方法大集合
- 教你如何使用 cmus 从 Linux 终端播放音乐
- 用js代码和插件实现wordpress雪花飘落效果的四种方法
- 如何搭建自己的可引导 Linux Live CD
- linux内核md源代码解读 六 先容raid10阵列的运行
- Linux中安装强大的 SQL Server和SQL Server CLI工具
- 魅族pro5mini版什么时候上市 魅族pro5mini什么时候发布
- Linux 黑话分析:什么是滚动发行版?
- ios7微信不能用问题 微信发不了照片收不到信息解决方法
- 15+ tar command usages with examples – Unix/Linux--ref
站长推荐
- linux – 磁盘写入速度比读取速度慢得多
- linux – 使用ssh配置pam以进行双因素身份验证
- iPhone/iTouch/iPad升级和恢复iOS5.1.1教程
- c – HeapCreate,Linux中的HeapAlloc,Linux的私有
- Debian、Ubuntu、Linux Mint,哪款更喜欢?
- Git 2.27-rc0 发布,仍在不断从SHA1过渡到SHA256
- 不要 locate 指令,Linux plocate 才是更好的选择
- 《变形金刚2:卷土重来》流程攻略(Xbox360)秘籍
- 文件上传小技巧/后端处理【以php示例】
- linux – mount.ocfs2:安装时没有连接传输端点…

