zoukankan      html  css  js  c++  java
  • [Bada开发]使用共享库

    本文介绍了如何在bada程序中使用共享库,共享或动态库是一个二进制文件,包括一套可调用的C/C++方法。文件说明了如何创建共享库,将它们连接到你的撤出那个徐,及如何在你的程序中使用这些方法。

    共享或动态库是一个二进制文件,包括一套可调用的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. _EXPORT_ int OspfDynaLib(void);
    3. // Exported user-defined class
    4. class _EXPORT_ MyClass {
    5. public:
    6. MyClass(void){};
    7. virtual ~MyClass();
    8. void PrintMessage(void);
    9. };

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

    构建库

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

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

    图:生成的库二进制文件

    将共享库连接到你的程序

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

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

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

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

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

    ◆在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;
  • 相关阅读:
    详解Java API之正则表达式
    ios UIWindow 错误使用导致无法接收motionEnded(摇一摇)函数
    ios NSTimer的强引用问题
    ionic 接触的第一个Hybrid项目
    iOS 小经验:UIAnimation空对象导致crash
    iOS GCD 必读推荐,有关于单例使用问题
    ios NSString 转 float的注意
    iOS UIViewController 和 nib 相关的3个方法
    ios delegate 使用注意 assign,weak
    ios 使用autolayout 后button 的frame 无法设置问题!
  • 原文地址:https://www.cnblogs.com/webapplee/p/3767826.html
Copyright © 2011-2022 走看看