Tizen应用程序的条目文件的主要部分是什么?

时间:2013-06-26 00:01:47

标签: c++ tizen

因为Tizen仍然不那么受欢迎,我找不到Tizen应用程序入口文件的解释。任何人都可以根据以下示例代码解释Tizen条目文件的特定部分(主函数返回值,#ifdef,args ...)?

#include <new>
#include "MultipointTouch.h"

using namespace Tizen::Base;
using namespace Tizen::Base::Collection;

#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus

_EXPORT_ int OspMain(int argc, char* pArgv[]);

/**
 * The entry function of Tizen C++ application called by the operating system.
 */
int
OspMain(int argc, char* pArgv[])
{
    AppLog("Application started.");
    ArrayList args;
    args.Construct();
    for (int i = 0; i < argc; i++)
    {
        args.Add(*(new (std::nothrow) String(pArgv[i])));
    }

    result r = Tizen::App::Application::Execute(MultipointTouch::CreateInstance, &args);
    TryLog(r == E_SUCCESS, "[%s] Application execution failed", GetErrorMessage(r));

    args.RemoveAll(true);
    AppLog("Application finished.");
    return static_cast<int>(r);
}
#ifdef __cplusplus
}
#endif // __cplusplus

1 个答案:

答案 0 :(得分:0)

  • #ifdef __cplusplus
    extern "C

不是Tizen特定的。它的作用是“[make] C ++中的函数名称具有'C'链接(编译器不会破坏名称),以便客户端C代码可以使用'C'链接到(即使用)您的函数兼容的头文件,仅包含函数的声明。“source)。


  • int OspMain(int argc, char* pArgv[])

OspMain只是Tizen原生应用程序的入口点(即应用程序启动时操作系统调用的应用程序中的第一个功能),非常类似mainWinMain in其他操作系统/框架。


  • ARGS

App Execute方法expects the arguments as a list of Strings。因此OspMain函数在调用Execute方法之前负责构建该列表;从String中的每个char*创建argv,并将Strings放置在ArrayList中(IList的实现接口)。


  • 返回值

OspMain的返回类型为int,但它从Execute收到的结果代码的类型为result,因此会将result转换为int {{1}}。如果你想了解更多关于它们的信息,那么关于C ++演员的主题就有plenty of questions


最后,我认为很少有实例作为应用程序开发人员关注Entry文件。它是由IDE自动为您创建的,而不是您通常会更改的内容。