Как получить аргументы командной строки в приложениях MFC?

Я хочу иметь небольшое диалоговое приложение, в которое передаются параметры командной строки, поэтому, используя V C++ 6, я запустил мастер приложений и выбрал диалоговое приложение MFC.

Это не оснащается автоматически параметрами командной строки. Поэтому я пошел на MSDN, чтобы обновить мою память на них. MSDN заявляет, что все программы C++ иметь функцию main() или wmain() и аргументы argc и т.д. иди сюда. В только что созданном приложении их нет.

Поскольку, очевидно, есть функция, которая является точкой входа в приложение, Я придерживаюсь аргументов здесь? Я попробовал это, но я не уверен, что я на самом деле редактировал правильную функцию. (Могу ли я найти функцию, которая выступает в качестве функции main() в настройках проекта или аналогичных?)

В основном, как заставить мою программу читать параметры командной строки.

Также как побочная линия. Для простой программы, которая это, я действительно не хочу сделать его приложением MFC, и, следовательно, размером более МБ. Существуют ли библиотеки шаблонов приложений, которые позволят мне сделать диалог без MFC применение?

Ответы

Ответ 1

Используйте GetCommandLine(), которая возвращает имя исполняемого файла, следуют аргументы.

Член приложения m_lpCmdLine (используется как yourApp.m_lpCmdLine) содержит только аргументы.

Существует также CWinApp :: ParseCommandLine(), который может оказаться полезным.

Также попробуйте мастер ATL COM для создания диалогового приложения без MFC (выберите вариант .exe, а не .dll).

Ответ 3

В приложениях MFC функция точки входа - это initInstance(), например, main() или wmain(). Используйте CWinApp::m_lpCmdLine в initInstance() для доступа к командной строке.

Ответ 4

Чтобы получить необработанную командную строку, используйте следующий код (будет работать в любом приложении Win32/MFC):

TCHAR *pCommandLine = ::[GetCommandLine()][1];
int nArgc = 0;
LPWSTR *pArgv = ::CommandLineToArgvW(pCommandLine, &nArgc);

nArgc должно быть 1, если аргументы не заданы, и больше 1, если они есть. Тогда pArgv1 будет первым аргументом и так далее...

Ответ 5

"Существуют ли библиотеки шаблонов приложений и библиотеки приложений, которые позволят мне создать диалоговое приложение без MFC?"

Вы можете сделать приложение, отличное от MFC, с помощью опции "Win32 project" в новом проекте → Visual С++ → Win32.

Или просто используйте С#, это намного проще.