CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
win_sys_entry.h
1#pragma once
2
3#include <cx/cx.h>
4#include <cx/platform/win.h>
5
6extern int entryCmdShow;
7
8#if defined(SUBSYSTEM_WINDOWS)
9// Windows subsystem
10
11#if defined(_UNICODE)
12#define DEFINE_ENTRY_POINT \
13 int WINAPI \
14 wWinMain(_In_ HINSTANCE hInst, _In_opt_ HINSTANCE hPrev, _In_ PWSTR cmdline, _In_ int show) \
15 { \
16 entryCmdShow = show; \
17 _entryParseArgsU16(__argc, __wargv); \
18 return entryPoint(); \
19 }
20#else
21#define DEFINE_ENTRY_POINT \
22 int WINAPI \
23 WinMain(_In_ HINSTANCE hInst, _In_opt_ HINSTANCE hPrev, _In_ PSTR cmdline, _In_ int show) \
24 { \
25 entryCmdShow = show; \
26 _entryParseArgs(__argc, __argv); \
27 return entryPoint(); \
28 }
29#endif
30
31#else
32// Console subsystem
33
34#if defined(_UNICODE)
35#define DEFINE_ENTRY_POINT \
36 int wmain(int argc, wchar_t* wargv[]) \
37 { \
38 _entryParseArgsU16(argc, wargv); \
39 return entryPoint(); \
40 }
41#else
42#define DEFINE_ENTRY_POINT \
43 int main(int argc, char* argv[]) \
44 { \
45 _entryParseArgs(argc, argv); \
46 return entryPoint(); \
47 }
48#endif
49
50#endif