C ++ Доступ к аргументам командной строки вне main? - PullRequest
2 голосов
/ 16 ноября 2009

У меня есть пара приложений командной строки, которые оба заканчивают вызовом в com-объекты. Вместо добавления нового интерфейса к этим com-объектам, могут ли они получить доступ к параметрам, переданным из командной строки?

Редактировать: вроде как я могу вызвать GetModuleFileName, чтобы получить имя файла. Мне интересно, есть ли эквивалентный метод для получения аргументов.

Ответы [ 3 ]

8 голосов
/ 16 ноября 2009

API Win32, который вы ищете: GetCommandLine .

Ваш COM-объект, вероятно, должен работать внутри вашего процесса.

Чтобы преобразовать командную строку в массив строк в стиле argv, вызовите функцию CommandLineToArgvW .

3 голосов
/ 16 ноября 2009

Это зависит от платформы.

В Win32 вы можете использовать GetCommandLine () .

Однако вам придется выполнять разбор вручную.

1 голос
/ 16 ноября 2009

В Windows вы можете получить командную строку с помощью вызова функции WIN32 (GetCommandLine), но она не будет разбираться в массив, такой как argc / argv. Если COM-объект использует MFC, вы можете получить аргументы командной строки из вашего объекта CWinApp. Иначе нет простого способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...