- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
调用 公开 接口的 SO 的方法 (* ************************************************ *) (* *) (* 设计:爱吃猪头肉 Flying Wang 2013-12-20 *) (* 上面的版权声明请不要移除。 *) (* *) (* ************************************************ *) 应群里,不知道是哪位群友的要求。分析一个叫 HT518 扫描枪参考例程 的 JAVA 代码。 发现这个 代码有如下几个特点。 给出了 SO 文件。 给出了 SO 的 JAVA 定义。 SO 文件内的函数没有加密。 用 记事本打开 SO 文件如下图。 您可以找到这些接口的 定义文本。这就是没有加密。 同一个接口可能会出现 两次。 其中一个大概是预定义,另一个才是真实的定义。 上图是只有名称的定义 上图是完整的定义。 他们的顺序不一定。 所以同一个函数,请找对位置。 上图是 JAVA 文件内的定义。 两处的定义是有差别的。 我们需要将 JAVA 的定义翻译成 DELPHI 的同时,补齐丢失的参数。 以 gpio_switch_gps_bluetooth 为例。 下面是 JAVA 版的定义 static public native void gpio_switch_gps_bluetooth(int flag); 下面是 SO 中的定义 void gpio_switch_gps_bluetooth(JNIEnv*, _jobject*, int) 这个函数比 JAVA 版多了 2 个参数。 第一个 DELPHI 的定义类型是 PJNIEnv ,几乎完全一致。 第二个是 JNIObject,含义也差不多。 如果发现其他类型,请自己耐心的找对应的 DELPHI 类型。 一般都定义在 Androidapi.Jni 中。 下面是我自己翻译的结果 const HT518dll = libjni_gpio.so; _PU = ; procedure gpio_switch_gps_bluetooth(Env: PJNIEnv; Obj: JNIObject; flag: Integer) ; cdecl; external HT518dll name _PU + gpio_switch_gps_bluetooth {$IFNDEF POSIX}delayed{$ENDIF}; 注意不支持动态加载 这里告诉大家一个很不幸的消息。 很多 SO 文件的内容都看不到接口。 当然如果有 JAVA 的文件可以参考。 那么您可以试试加上 Env: PJNIEnv; Obj: JNIObject ,看看能不能用吧。 由于上述 SO 是一个硬件的东西。我无法测试。 现在我用一个叫 liaSerialPort.so 的SO 文件做测试。 现在的问题是 SO 的原始名称发布到 LIB 路径,编译过程就出错了。 换个名称,就可以边缘化过去,但是安装到机器上,偏偏少这个文件。其他文件都有了。 自己把这个文件弄好几个名称,都能发布到 LIB。就是正在用的那个,发布不过去。
您可能关注的文档
- Delphi使用IOS自带推送.ppt
- [iOS] 在发布你的 iOS 应用时的注意事项 2016-08-09 By QDAC.doc
- [FMX] 技巧 – 为你的按钮添加图标.doc
- 32.使用 Canvas.DrawPath 绘制时,最后一点无法画到终点位置。(使用 DrawPath 断线问题 这个问题要在粗线才能察觉) by 龟山阿卍.doc
- 1.IOS APNS证书配置说明.doc
- Android SDK Manager 下载 和 安卓环境丢失的问题.doc
- Ajax访问dataSnap Rest服务器--让你的DataSnap更牛B.doc
- c++ builder (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程.doc
- Delphi Android应用接入支付宝SDK的方法 2015-08-03.doc
- Delphi XE5 图解为Android应用制作签名证书.doc
有哪些信誉好的足球投注网站
文档评论(0)