|  | 
 
| 重点是文章是 2015年 d10 刚刚发布之后做的,现在应该已经不适用了。 也许,你会更成功,也许更失败。
 
 
 Please note: This is Chinese document, if you don't understand, please go to Confucius College(孔子学院) to study.
 
 (****************************************************)
 (*                         *)
 (*     编写:爱吃猪头肉 & Flying Wang     *)
 (*      上面的版权声明请不要移除。      *)
 (*          2015-10-30          *)
 (*                         *)
 (*          禁止发布到城通网盘。        *)
 (*                         *)
 (****************************************************)
 
 
 RAD10 新建 dll so 动态库 win 安卓 fmx 调用 教程
 
 第一步
 新建 4 个目录
 DLL 目录放 DLL 工程
 SO 目录放 so 工程
 Dll So Common 目录放 动态库的具体 代码。
 Fmx Test 目录放 FMX 跨平台测试工程。
 
 第二步
 新建一个 DLL工程 名叫 TestDll 保存工程 到 DLL 目录
 新建一个 安卓服务工程 也叫 TestDll 保存工程 到 SO 目录(有高手说,可以新建一个 DPK 也就是 Package 工程,平台选 安卓,效果一样)。
 将 安卓 TestDll 自带的 unit1 移除 并删除。
 将安卓 TestDll 的 dpr 的代码修改 为
 
 program TestDll;
 
 uses
 System.SysUtils,
 System.Classes
 ;
 
 {$R *.res}
 
 begin
 
 end.
 
 简单的说,就是 安卓服务 的代码,都不要了,换 DLL 的代码。
 
 第三步
 新建一个空 Unit1 。
 保存到Dll So Common 目录,在两个 TestDll 中 都将 该 unit 加入到工程中。
 
 第四步
 在 Unit1 中 写 DLL 函数接口。具体代码 请查看 后面给出的 DEMO。
 然后 DLL 和 SO 版本的 TestDll 工程都编译出来。
 建议 Release 和 Debug 各编译一份。
 
 第五步
 新建一个 FMX 跨平台 工程,例如保存到 Fmx Test 目录。
 
 在你需要 使用 DLL 的地方。
 写下 类似如下的  DLL 引用 代码。
 [mw_shl_code=delphi,true]const
 LibName = {$IFDEF MSWINDOWS} 'TestDll.dll'; {$ELSE}
 {$IFDEF ANDROID} 'libTestDll.so'; {$ELSE} 'libTestDll.dylib'; {$ENDIF ANDROID}
 {$ENDIF MSWINDOWS}
 Fun_TestAdd_Name = 'TestAdd';
 type
 Fun_TestAdd = function(a,b: Integer): Integer;
 {$IFDEF MSWINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}[/mw_shl_code]
 
 可以参考 后面 给出的 DEMO。
 
 第六步
 在 工程的 部署界面。
 给 安卓的 Debug 和 Release 都加入 'libTestDll.so ,并且设置 部署路径为:library\lib\armeabi-v7a\
 
 两个分别都加。
 
 
 注意输出的路径都是 library\lib\armeabi-v7a\
 注意:上图的so 文件名错误,应该没有 2 。
 
 第七步
 可以在 WIN 和 安卓 平台 运行了。
 
 
 附源码
 使用 源代码,之前,请检查 部署(Deployment 界面)的路径是否正确。
 一般都不正确。请点。
 
 最后一个 按钮,可能图标会不一样。
 
 按照这个选。
 然后在
 
 和
 
 里面去掉这个 3 个。
 
 
 然后 按照前面说的 将 libTestDll.so 加入到部署中。
 
 
 最后附上所有的代码。
 
 
 附2
 目前发现 TEncoding.ANSI UTF8 在 安卓下 无法工作。
 
 | 
 
x本帖子中包含更多资源您需要 登录 才可以下载或查看,没有帐号?立即注册  |