在bada程序中使用共享库
创始人
2024-07-26 14:00:23
0

共享或动态库是一个二进制文件,包括一套可调用的C/C++方法。文件中的代码是不限位置的,这就意味着代码可以存在任何存储位置被上载和执行。Bada程序可以上载和卸载共享的库。而interpreter(Ld.exe)会处理在运行时间的上载和卸载流程,在共享的库目标和bada程序之间建立连接。

文件说明了如何创建共享库,将它们连接到你的撤出那个徐,及如何在你的程序中使用这些方法。

创建共享库为了创建共享库,你必须首先在bada IDE中为该库创建一个项目,为不同的连编配置定义属性。然后,你必须定义库API。最后,你必须构建库二进制文件。如需了解更多,参见下面内容:

创建库项目:

为了创建共享库项目:

在bada IDE中,选定File > New > bada Application Project;

◆如果bada Application Project选项不可见,确保你使用的是bada C++.

◆输入项目名称,选择bada Shared Library project type。

◆点击FINISH

 

 

图:创建共享库

设置C/C++ Build Properties

你必须为新的共享文件设置build artifact settings。要求为目标和Simulator连编配置进行不同的设置。

为了给Target-Debug配置设定build artifacts:

◆在bada IDE Project Explorer中,右击共享库项目,选定Properties;

◆在Properties窗口,选定C/C++ Build > Settings;

◆在Build Artifact键上,输入输出前缀lib,及artifact拓展。

当你使用目标设备上的共享库时,库的文件按名必须是”lib”开头。

◆输入OK。

库文件命名为lib.so

 

 

图:设置Target-Debug build artifact

为了给Simulator-Debug配置设置build artifacts:

◆在bada IDE Project Explorer中,右击共享文件库,选定Properties;

◆在Properties窗口,选择C/C++ Build > Settings

◆在Build Artifact键上,输入输出前缀为lib,artifact 拓展名为dll.。

◆Simulator在Windows环境中运行,动态库为".dll"文件。因此,对Simulator来说,动态库的缺省artifact拓展必须设置为“dll”。

◆点击OK。

库文件命名为lib.dll.

 

 

图:设置Simulator-Debug build artifact

定义库API

你必须在头文件中宣布库API,然后在相应的.cpp文件中定义。

下面的代码段显示了如何为你的程序宣布库API

 

  1. // This method is exported from libDynaLib.so  
  2.  
  3. _EXPORT_ int OspfDynaLib(void);  
  4.  
  5. // Exported user-defined class  
  6.  
  7. class _EXPORT_ MyClass {  
  8.  
  9. public:  
  10.  
  11. MyClass(void){};  
  12.  
  13. virtual ~MyClass();  
  14.  
  15. void PrintMessage(void);  
  16.  
  17. }; 

 

注:在共享库外需要读取的库方法或者类必须使用_EXPORT_ macro宣布。

构建库

你必须构建库项目以生成库二进制文件。为了为每个连编配置构建项目,在bada IDE中,选择Project > Build Project。

如果连编成功,为每个配置创建一个相应的二进制文件,如下表(libDynaLib.so, libDynaLib.dll)所示。二进制文件在项目的工作空间文件夹中,如, C:\bada\1.2.0\IDE\workspace\DynaLib\.Target-Debug\ libDynaLib.so。

 

 

图:生成的库二进制文件

将共享库连接到你的程序

为了在你的bada程序中使用库的输出方法,你必须将库连接到你的程序,把相应的头文件放置在程序的.cpp文件中。此外,你必须定义库和在程序项目属性中通往其位置的搜索路径。

为了设定在程序项目属性中的库和搜索路径:

◆在bada IDE Project Explorer中,将lib文件夹添加到你的bada程序项目中;

◆复制用于目标连编配置的共享的库二进制文件到新创建的lib文件夹中;

◆为了在Simulator运行程序,你必须复制Simulator的连编配置的二进制文件(.dll file) 到Simulator的库路径上。如,C:\bada\1.0.0\Model\Wave_LP1\Simulator\

◆在Project Explorer中,右击程序项目,选定属性

◆在Properties窗口中,选定C/C++ Build > Settings;

◆从Configuration的下拉菜单中,选定恰当的连编配置。

◆在Tool Settings 键中,选定bada C++ Linker > Miscellaneous.

◆添加在Libraries (-l)下使用的共享库;

◆添加库名称,无前缀和文件拓展名。例如,添加libDynaLib.so binary文件为as DynaLib;

◆检查Library search path (-L)下的缺省库路径(${PROJECT_ROOT}/lib)出口。如果没有,新创的lib folder为搜素路径。

◆点击APPLY。

◆为其他连编配置重复步骤5-9.

◆保存设置,点击OK。

 

 

图:程序项目中的库设置

使用共享库方法

在你将共享库连接到程序后,你可以使用程序中库API定义的方法。

下面的代码段显示了使用共享库的方法。

 

  1. // Using the shared library methods   
  2. AppLog("Value from OspfDynaLib = %d",OspfDynaLib());  
  3. MyClass* obj = new MyClass;  
  4. obj->PrintMessage();  
  5. delete obj; 

 

【编辑推荐】

  1. bada开发:播放实时rtsp流
  2. 官方文档:什么是bada?
  3. 官方文档:bada API参考资料
  4. 三星bada学习笔记:HelloWorld篇
  5. 三星bada学习笔记:基本概念

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...