让 MFC 支持命令行参数
2011-10-31 14:27 889 人阅读 评论(0) 收藏 举报
mfcwinapidialog 文档 null 数据结构
//注意:在 BOOL CXXXApp::InitInstance()里面
//如果在 CXXXDlg dlg; 之前加入,这个过程就是程序框架出来之前。
//简介 LPTSTR WINAPI GetCommandLine(void);
//没有参数,返回值是一个 LPTSTR 类型的字符串指针,即命令行参数的字符串。
// LPWSTR *CommandLineToArgvW(
// LPCWSTR lpCmdLine,
// int *pNumArgs);
//定义 int 接收参数个数
int nArgs = 0;
//此项单独用来读取参数个数,用于一些需要先判断个数的程序
CommandLineToArgvW(GetCommandLineW(), &nArgs);
if (nArgs>=2)
{
//处理过程
}
//定义接受参数数据结构
LPWSTR *szArglist = NULL;
//获取参数 以及参数个数。
szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
if( NULL != szArglist)
{
//szArglist 就是保存参数的数组
//nArgs 是数组中参数的个数
//数组的第一个元素表示程序本身,也就是 szArglist[0],
//其他的元素依次是输入参数
}
//取得参数后,释放 CommandLineToArgvW 申请的空间
CString str;
for (int i=1;i<nArgs;++i)
{
//处理 szArglist[i]过程
}
//释放 szArglist
LocalFree(szArglist);
//如需要直接退出
//exit(0);
以下为参考资料
让 MFC 程序支持命令行参数
一般情况下,如果我们的 VC 工程是 Console 控制台类型或者是 Win32 类型的情况下,这两类的工程类型比较容易获得命令行参数,
即,通过其入口点函数
int main(int argc, char *argv[])
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
但是,如果我们的工程类型是 MFC 对话框或单文档类型的话,如何让我们的程序支持命令行参数呢?
评论1