dl
dl_main.h
浏览该文件的文档.
1
11#include <cassert>
12#include <cstdio>
13#include <system/dl_platform.h>
14#include <system/dl_engine.h>
15
16
17extern int Main();
18
19#ifdef DL_USE_CRASH_RPT
20#include "CrashRpt.h"
21#endif
22
23inline void dl_main_init(int argc, char** argv)
24{
25#ifdef DL_USE_CRASH_RPT
26 CR_INSTALL_INFOW info;
27 memset(&info, 0, sizeof(CR_INSTALL_INFOW));
28 info.cb = sizeof(CR_INSTALL_INFOW); // Size of the structure
29 info.pszAppName = L"dl_engine"; // App name
30 info.pszAppVersion = L"1.0.0"; // App version
31 info.pszEmailSubject = L"CrashRpt Console Test 1.0.0 Error Report"; // Email subject
32 info.pszEmailTo = L"test@hotmail.com"; // Email recipient address
33
34 // Install crash handlers
35 int nInstResult = crInstallW(&info);
36 assert(nInstResult == 0);
37
38 // Check result
39 if (nInstResult != 0)
40 {
41 WCHAR buff[256];
42 crGetLastErrorMsgW(buff, 256); // Get last error
43 printf("%ws\n", buff); // and output it to the screen
44 }
45#endif
46 dl::Engine::_init_cmd(argc, argv);
47}
48
49inline void dl_main_release()
50{
51#ifdef DL_USE_CRASH_RPT
52 int nUninstRes = crUninstall(); // Uninstall exception handlers
53 assert(nUninstRes == 0);
54#endif
55}
56
57
58
59#if DL_PLATFORM != DL_PLATFORM_ANDROID
60
61#if DL_USE_CONSOLE
62int main(int argc, char** argv)
63{
64 dl_main_init(argc, argv);
65 int ret = Main();
67 return ret;
68}
69#else
70#include <wtypes.h>
71int CALLBACK WinMain(
72 __in HINSTANCE hInstance,
73 __in HINSTANCE hPrevInstance,
74 __in LPSTR lpCmdLine,
75 __in int nCmdShow
76)
77{
78 dl_main_init(__argc, __argv);
79 int ret = Main();
81 return ret;
82}
83#endif
84
85#else
86#include <game-activity/native_app_glue/android_native_app_glue.h>
87#include <system/dl_android.h>
88// 主函数
89void android_main(android_app* app)
90{
92 dl::g_android->Init();
93 // todo 命令行参数
94 dl_main_init(0, nullptr);
95 Main();
96 delete dl::g_android;
97}
98
99#endif
static void _init_cmd(int argc, char **argv)
安卓相关
dl引擎组件
void dl_main_init(int argc, char **argv)
int Main()
void dl_main_release()
int CALLBACK WinMain(__in HINSTANCE hInstance, __in HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nCmdShow)
平台宏
AndroidData * g_android
安卓平台特有句柄