Skip to content
Snippets Groups Projects
Select Git revision
  • 6eb46c92f0d6aa7d7ee71ee6e2d47ee9f13076db
  • master default protected
  • chrome-manifest-v3
  • feature/migrate-cordova-13
  • feat/improve-network-scan
  • feat/force-migration-check
  • develop
  • feature/encrypted_comment
  • feature/android_api_19
  • gitlab_migration_1
  • rml8
  • v1.7.15-rc1
  • v1.7.14
  • v1.7.13
  • v1.7.12
  • v1.7.11
  • v1.7.10
  • v1.7.9
  • v1.7.8
  • v1.7.7
  • v1.7.6
  • v1.7.5
  • v1.7.4
  • v1.7.3
  • v1.7.2
  • v1.7.1
  • v1.7.0
  • v1.7.0-rc2
  • v1.7.0-rc1
  • v1.6.12
  • v1.6.11
31 results

config.js

Blame
  • utils.cpp 1.61 KiB
    #include "utils.h"
    
    #include <flutter_windows.h>
    #include <io.h>
    #include <stdio.h>
    #include <windows.h>
    
    #include <iostream>
    
    void CreateAndAttachConsole() {
      if (::AllocConsole()) {
        FILE *unused;
        if (freopen_s(&unused, "CONOUT$", "w", stdout)) {
          _dup2(_fileno(stdout), 1);
        }
        if (freopen_s(&unused, "CONOUT$", "w", stderr)) {
          _dup2(_fileno(stdout), 2);
        }
        std::ios::sync_with_stdio();
        FlutterDesktopResyncOutputStreams();
      }
    }
    
    std::vector<std::string> GetCommandLineArguments() {
      // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use.
      int argc;
      wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);
      if (argv == nullptr) {
        return std::vector<std::string>();
      }
    
      std::vector<std::string> command_line_arguments;
    
      // Skip the first argument as it's the binary name.
      for (int i = 1; i < argc; i++) {
        command_line_arguments.push_back(Utf8FromUtf16(argv[i]));
      }
    
      ::LocalFree(argv);
    
      return command_line_arguments;
    }
    
    std::string Utf8FromUtf16(const wchar_t* utf16_string) {
      if (utf16_string == nullptr) {
        return std::string();
      }
      int target_length = ::WideCharToMultiByte(
          CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
          -1, nullptr, 0, nullptr, nullptr);
      if (target_length == 0) {
        return std::string();
      }
      std::string utf8_string;
      utf8_string.resize(target_length);
      int converted_length = ::WideCharToMultiByte(
          CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
          -1, utf8_string.data(),
          target_length, nullptr, nullptr);
      if (converted_length == 0) {
        return std::string();
      }
      return utf8_string;
    }