Поскольку 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
#ifdef __cplusplus
extern "C
Не тизен-специфичный. Что он делает, так это «[сделать] имя функции в C ++ имеет связь« C »(компилятор не искажает имя), чтобы клиентский код C мог ссылаться (т.е. использовать) вашу функцию, используя совместимый с« C »заголовочный файл, который содержит только объявление вашей функции. « (источник).
int OspMain(int argc, char* pArgv[])
OspMain
это просто точка входа для собственного приложения Tizen (т.е. первая функция в вашем приложении, которую ОС вызывает при запуске приложения), очень похоже на main
или же WinMain
в других ОС / фреймворках.
App
Execute
метод ожидает аргументы в виде списка Strings
. Итак OspMain
Функция заботится о создании этого списка до вызова Execute
Способ; String
создается из каждого char*
в argv
, и те Strings
помещены в ArrayList
(который является реализацией IList
интерфейс).
Тип возврата OspMain
является int
, но код результата, который он получает от Execute
имеет тип result
, так что бросает result
для int
, Есть множество вопросов на тему C ++, если вы хотите узнать больше о них.
В конце концов, я думаю, что есть очень немного случаев, когда вам придется заботиться о файле Entry как о разработчике приложения. Он автоматически создается для вас в IDE, а не то, что вы обычно меняете.
Других решений пока нет …