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 \
13int WINAPI wWinMain(_In_ HINSTANCE hInst, _In_opt_ HINSTANCE hPrev, _In_ PWSTR cmdline, _In_ int show) { \
14 entryCmdShow = show; \
15 _entryParseArgsU16(__argc, __wargv); \
16 return entryPoint(); \
17}
18#else
19#define DEFINE_ENTRY_POINT \
20int WINAPI WinMain(_In_ HINSTANCE hInst, _In_opt_ HINSTANCE hPrev, _In_ PSTR cmdline, _In_ int show) { \
21 entryCmdShow = show; \
22 _entryParseArgs(__argc, __argv); \
23 return entryPoint(); \
24}
25#endif
26
27#else
28// Console subsystem
29
30#if defined(_UNICODE)
31#define DEFINE_ENTRY_POINT \
32int wmain(int argc, wchar_t *wargv[]) { \
33 _entryParseArgsU16(argc, wargv); \
34 return entryPoint(); \
35}
36#else
37#define DEFINE_ENTRY_POINT \
38int main(int argc, char *argv[]) { \
39 _entryParseArgs(argc, argv); \
40 return entryPoint(); \
41}
42#endif
43
44#endif