]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/main-windows.cpp
Put brackets around ipv6 addresses in `inet6 present`
[factor.git] / vm / main-windows.cpp
index 4de32f894a4d15c5568ee533bd0912d87bf1d646..4d6eddedd8a4420fc443f67f9ac4ea5104fd42ff 100644 (file)
@@ -1,21 +1,28 @@
 #include "master.hpp"
 
-VM_C_API int wmain(int argc, wchar_t **argv)
-{
-       factor::init_globals();
-       factor::start_standalone_factor(argc,argv);
-       return 0;
+VM_C_API int wmain(int argc, wchar_t** argv) {
+  HANDLE proc = GetCurrentProcess();
+  HANDLE thread = GetCurrentThread();
+  BOOL res = DuplicateHandle(proc, thread, proc,
+                             &factor::boot_thread, GENERIC_ALL, FALSE, 0);
+  if (!res) {
+    factor::fatal_error("DuplicateHandle() failed", GetLastError());
+    return 1;
+  }
+  factor::init_mvm();
+  factor::start_standalone_factor(argc, argv);
+  return 0;
 }
 
-int WINAPI WinMain(
-       HINSTANCE hInstance,
-       HINSTANCE hPrevInstance,
-       LPSTR lpCmdLine,
-       int nCmdShow)
-{
-       int argc;
-       wchar_t **argv = CommandLineToArgvW(GetCommandLine(),&argc);
-       wmain(argc,argv);
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
+                   LPSTR lpCmdLine, int nCmdShow) {
+  (void)hInstance;
+  (void)hPrevInstance;
+  (void)lpCmdLine;
+  (void)nCmdShow;
+  int argc;
+  wchar_t** argv = CommandLineToArgvW(GetCommandLine(), &argc);
+  wmain(argc, argv);
 
-       return 0;
+  return 0;
 }