У меня есть проект Qt, использующий библиотеку openvpn3 (версия 3.4.1-1), установленную через Vcpkg. При подключении openvpn выполняет несколько команд с помощью утилиты netsh
, для исполнения они используют функцию CreateProcessW
внутри библиотеки следующим образом :
CreateProcessW(nullptr,
wcmd.get(), // command line
nullptr, // process security attributes
nullptr, // primary thread security attributes
TRUE, // handles are inherited
0, // creation flags
nullptr, // use parent's environment
nullptr, // use parent's current directory
&siStartInfo, // STARTUPINFO pointer
&piProcInfo)
Проблема в том, что это открывается и сразу закрывается несколько терминалов windows с netsh
командами, и я не хочу этого. Я полагаю, что одним из возможных решений является разветвление и изменение кода в самой библиотеке (передайте CREATE_NO_WINDOW
как флаг создания), но я хотел бы знать, есть ли другие менее радикальные решения этой проблемы.
Я использую Qt 5.12.7 и Visual Studio 2019, свойства проекта устанавливаются на Windows
в подсистеме компоновщика, если это уместно.