Почему первый аргумент командной строки теряется в приложении .NET Core, когда оно запускается приложением C++ – CreatePC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему первый аргумент командной строки теряется в приложении .NET Core, когда оно запускается приложением C++ – CreateP

Сообщение Anonymous »

Приложение C++ запускает .NET 8 TestApp.exe

Код: Выделить всё

CreateProcessW(L"D:\\TestApp.exe", L"-x \"MY_PARAM\"", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)
Затем в этом TestApp проверяется командная строка
.NET 8

Код: Выделить всё

[D:\TestApp.dll,MY_PARAM] - Environment.GetCommandLineArgs()
"D:\TestApp.dll" MY_PARAM - Environment.CommandLine
kernel32.dll

Код: Выделить всё

-x "MY_PARAM" - GetCommandLine()
Если TestApp — это .NET Framework 4.7.2

Код: Выделить всё

[-x,MY_PARAM] - Environment.GetCommandLineArgs()
-x "MY_PARAM" - Environment.CommandLine
Знаете ли вы, почему первый аргумент командной строки (-x) теряется в приложении .NET Core?
Все выглядит нормально, когда TestApp запускается из приложения .NET Framework или .NET Core.
Или когда перед первым аргументом добавляется пробел " -x "MY_PARAM"".
Это ошибка в .NET Core?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... un-by-c-ap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»