#ifndef _MINGW_WMAIN_FIX_HH
#define _MINGW_WMAIN_FIX_HH

#ifdef __MINGW32__
#include <windows.h>
#include <cwchar>
int wmain(int, wchar_t**);
int main() {
    class autoLocalFree {
        public:
            autoLocalFree(wchar_t** arr) : ptr(arr) {}
            ~autoLocalFree() {
                LocalFree(ptr);
            }
        private:
            wchar_t** ptr;
    };
    int argc;
    wchar_t** argv = CommandLineToArgvW(GetCommandLineW(), &argc);
    if (!argv) {
        return 1;
    }
    autoLocalFree autoLocalFreeArgv(argv);
    return wmain(argc, argv);
}
#endif
#endif
