fix windows build
This commit is contained in:
@@ -299,13 +299,15 @@ int MainEntry(int argc, char** argv) {
|
||||
// The real main entry
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
|
||||
extern "C" void __wgetmainargs(int*, wchar_t***, wchar_t***, int, int*);
|
||||
#include <windows.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
int argcW;
|
||||
wchar_t** argvW;
|
||||
wchar_t** envW;
|
||||
__wgetmainargs(&argcW, &argvW, &envW, 0, nullptr);
|
||||
int argcW = 0;
|
||||
wchar_t** argvW = CommandLineToArgvW(GetCommandLineW(), &argcW);
|
||||
if (argvW == nullptr) {
|
||||
fmt::print("Unable to parse command line\n");
|
||||
return 1;
|
||||
}
|
||||
std::vector<std::string> args;
|
||||
args.reserve(argcW);
|
||||
for (int i = 0; i < argcW; i++) {
|
||||
@@ -316,6 +318,9 @@ int main(int argc, char** argv) {
|
||||
for (auto& arg: args) {
|
||||
argvC.push_back(arg.data());
|
||||
}
|
||||
LocalFree(argvW);
|
||||
SetConsoleCP(CP_UTF8);
|
||||
SetConsoleOutputCP(CP_UTF8);
|
||||
return MainEntry((int) argvC.size(), argvC.data());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user