MFC工程与命令行参数
来源:互联网 发布:linux环境变量生效 编辑:程序博客网 时间:2024/05/20 16:14
一般情况下MFC工程生成的东东很少会用到命令行,但是毕竟会用到。而相对于win32控制台程序,MFC程序获取命令行参数可能会稍微复杂一些。
关键函数:GetCommandLine,CommandLineToArgv
源代码(注意哟 这个是控制台程序的)
#include <windows.h>#include <stdio.h>#include <shellapi.h>int __cdecl main(){ LPWSTR *szArglist; int nArgs; int i; szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs); if( NULL == szArglist ) { wprintf(L"CommandLineToArgvW failed\n"); return 0; } else for( i=0; i<nArgs; i++) printf("%d: %ws\n", i, szArglist[i]);// Free memory allocated for CommandLineToArgvW arguments. LocalFree(szArglist); return(1);}
虽然这段代码是控制台的,但是同样适用于MFC带界面的工程。
在mfc工程中,默认情况是带一个命令行参数的(vc控制台程序也同样带),即为可执行程序的绝对路径。
一般在mfc工程的主线程类初始化之后,弹出主界面之前加入相关获取命令行参数的代码段。
BOOL CAppLineApp::InitInstance(){// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,//则需要 InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);// 将它设置为包括所有要在应用程序中使用的// 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinAppEx::InitInstance();AfxEnableControlContainer();// 标准初始化// 如果未使用这些功能并希望减小// 最终可执行文件的大小,则应移除下列// 不需要的特定初始化例程// 更改用于存储设置的注册表项// TODO: 应适当修改该字符串,// 例如修改为公司或组织名SetRegistryKey(_T("应用程序向导生成的本地应用程序"));LPWSTR *szArglist;int nArgs;szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);if (nArgs >= 2){MessageBox(NULL,_T("有手动输入参数"), _T("提示"),MB_OK);MessageBox(NULL,szArglist[1],_T("第二个参数"),MB_OK);LocalFree(szArglist);return FALSE;}LocalFree(szArglist);CAppLineDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();if (nResponse == IDOK){// TODO: 在此放置处理何时用// “确定”来关闭对话框的代码}else if (nResponse == IDCANCEL){// TODO: 在此放置处理何时用// “取消”来关闭对话框的代码}// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,// 而不是启动应用程序的消息泵。return FALSE;}我的exe是AppLine.exe
输入时是这样的
AppLine “第2个参数”
- MFC工程与命令行参数
- MFC获取命令行参数
- MFC 获取命令行参数
- MFC 接收命令行 参数
- MFC传入命令行参数
- mfc 获取命令行参数
- [转]MFC获取命令行参数
- 让MFC支持命令行参数
- MFC 获取命令行参数 unicode
- MFC程序处理命令行参数
- MFC 获取命令行参数方法
- MFC-命令行参数用法摘要
- MFC 如何获取命令行参数
- MFC中命令行参数处理办法
- 让MFC程序支持命令行参数
- 让MFC程序支持命令行参数
- MFC应用程序接收命令行参数的实现
- MFC应用程序接收命令行参数的实现
- 动态库加载出错,cannot restore segment prot after reloc: Permission denied以及为何编译动态库需要-fPIC
- PBS(Portable BatchSystem)简介
- [转]32位cpu寄存器说明
- C#获得计算机名,当前登录用户名,Ip地址 .
- 模板方案云台URL地址变更
- MFC工程与命令行参数
- 自旋锁
- 为CKEditor开发FLV视频播放插件
- Google Test(GTest)和Google Mock(GMock)入门简介
- 作为一个新人,怎样学习嵌入式Linux?
- 探寻计算机文件的本质
- c++ 单链表的基本操作
- 关于公司的下一步,如何找到革命性的商业点子?
- In App Purchase总结