attempt something. maybe this worked, maybe not.

This commit is contained in:
Arisotura
2020-04-25 18:48:33 +02:00
7 changed files with 64 additions and 346 deletions

View File

@ -22,10 +22,11 @@
#include <string.h>
// Qt includes and shit here, I guess
#include <QtCore/QBitArray>
#include "main.h"
#include "../version.h"
#include "../../version.h"
//
@ -43,3 +44,42 @@ int main(int argc, char** argv)
return 0;
}
#ifdef __WIN32__
#include <windows.h>
int CALLBACK WinMain(HINSTANCE hinst, HINSTANCE hprev, LPSTR cmdline, int cmdshow)
{
int argc = 0;
wchar_t** argv_w = CommandLineToArgvW(GetCommandLineW(), &argc);
char* nullarg = "";
char** argv = new char*[argc];
for (int i = 0; i < argc; i++)
{
int len = WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, NULL, 0, NULL, NULL);
if (len < 1) return NULL;
argv[i] = new char[len];
int res = WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, argv[i], len, NULL, NULL);
if (res != len) { delete[] argv[i]; argv[i] = nullarg; }
}
if (AttachConsole(ATTACH_PARENT_PROCESS))
{
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
printf("\n");
}
int ret = main(argc, argv);
printf("\n\n>");
for (int i = 0; i < argc; i++) if (argv[i] != nullarg) delete[] argv[i];
delete[] argv;
return ret;
}
#endif