2015-05-20 3 views
1

У меня есть приложение SDI, установленное в Visual Studio. Я понял, что передать имя файла в приложение отлично, как в командной строке: MyApp.exe "C:\a.txt". Однако он не принимает пользовательские аргументы или URL-адреса. Скажите, что я не могу сделать MyApp.exe "SomethingILike" или MyApp.exe "www.google.com"Пользовательский параметр синтаксического анализа MFC SDI

Я понимаю, код для обработки аргументов в ...App::InitInstance() Есть

CCommandLineInfo cmdInfo; 
ParseCommandLine(cmdInfo); 

if (!ProcessShellCommand(cmdInfo)) 
    return FALSE; 
m_pMainWnd->ShowWindow(SW_SHOW); 
m_pMainWnd->UpdateWindow(); 

Очевидно ProcessShellCommand правила из аргументов MFC не считает разумным. Как мне обрабатывать свои собственные аргументы? Скажем, я хочу передать «SomethingILike», теперь он говорит мне файл-не обретенный и выключается, но, по крайней мере, я хочу, чтобы приложение, чтобы начать нормально и у меня будет шанс получить

this->m_lpCmdLine 

Я не могу комментировать из инструкции ProcessShellCommand if, в противном случае это дает мне необработанное исключение. Возможно, ProcessShellCommand тоже выполняет некоторые инициализационные работы, что для меня звучит не совсем разумно.

ответ

1

Вы должны получить класс от CCommandLineInfo и переопределить его виртуальную функцию ParseParam(), чтобы определить собственную обработку параметров.

Здесь demo о том, как это сделать.

+0

Спасибо. Это сработало. – Bigman

Смежные вопросы