C++ MFCSDI应用程序解析自定义参数

C++ MFCSDI应用程序解析自定义参数,c++,mfc,C++,Mfc,我在VisualStudio中建立了一个SDI应用程序。我知道将文件名传递给应用程序很好,就像命令行中的那样:MyApp.exe“C:\a.txt”。但是,它不接受自定义参数或URL。假设我不能做MyApp.exe“类似的事情”或MyApp.exe“www.google.com” 我知道处理参数的代码在…App::InitInstance()中有 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (!ProcessShellComm

我在VisualStudio中建立了一个SDI应用程序。我知道将文件名传递给应用程序很好,就像命令行中的那样:
MyApp.exe“C:\a.txt”
。但是,它不接受自定义参数或URL。假设我不能做
MyApp.exe“类似的事情”
MyApp.exe“www.google.com”

我知道处理参数的代码在
…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
也做了一些初始化工作,这听起来不太合理。

您必须从
CCommandLineInfo
派生一个类,并重写其虚拟函数来定义自己对参数的处理

这里有一个关于如何做的例子