MFC程序获得命令行输入
来源:互联网 发布:linux fstab 挂载参数 编辑:程序博客网 时间:2024/06/16 11:09
一个unicode工程,需要处理很多文件,开始的时候没有做成console程序,发现程序写好之后出来了两个问题。程序通过CFileDialog来打开文件夹获得文件路径的。但是一个个打开太麻烦了。于是修改程序使程序接受命令传递的参数。这样就可以通过批处理来完成任务了。
方法1:
for (int i=0;i<__argc;i++){__argv[i];将依次得到C:\test\app.exe -1 -2}
这种和console得到命令参数区别不大,需要注意的是argv[i]前面是双下划线
ANSI console processes written in C can use theargc andargv arguments of the main function to access the command-line arguments. ANSI GUI applications can use thelpCmdLine parameter of theWinMain function to access the command-line string, excluding the program name. The reason thatmain andWinMain cannot return Unicode strings is thatargc, argv, and lpCmdLine use the LPSTR data type for parameters, not theLPTSTR data type. The GetCommandLine function can be used to access Unicode strings, because it uses theLPTSTR data type.
MSDN语句就不翻译了,大致意思就是argv得到的是LPSTR 类型的,ascii编码的。由于工程是UNICODE编码的因此不能,此时使用GetCommandLine
2、使用GetCommandLine
::GetCommandLine();
无参数,返回LPTSTR,根据工程的编码而定。但是需要注意的是,此时返回的是指向整个命令的指针。
eg:"C:\test\app.exe" -1 -2批处理语句
那么将得到"C:\test\app.exe" -1 -2整句话。而不是后面的参数-1,-2
3、AfxGetApp()->m_lpCmdLine;
这时只是得到后面的-1,-2参数
核心编程中指出一个相当简单实用的方法:
应用程序可以按照它选择的方法来分析和转换命令行字符串。实际上可以写入p s z C m d L i n e参数指向的内存缓存,但是在任何情况下都不应该写到缓存的外面去。我总是将它视为只读缓存。如果我想修改命令行,首先我要将命令行拷贝到应用程序的本地缓存中,然后再修改本地缓存。也可以获得一个指向进程的完整命令行的指针,方法是调用G e t C o m m a n d L i n e 函数:
PTSTR GetCommandLine();
该函数返回一个指向包含完整命令行的缓存的指针,该命令行包括执行文件的完整路径名。
许多应用程序常常拥有转换成它的各个标记的命令行。使用全局性__argc(或__wargv)变量,应用程序就能访问命令行的各个组成部分。下面这个函数CommandLineToArgvW将Unicode字符串分割成它的各个标记:
PWSTR CommandLineToArgvW(PWSTR pszCmdLine, int pNumArgs);
正如该函数名的结尾处的W 所暗示的那样,该函数只存在于U n i c o d e 版本中(W 是英文单词‘Wi d e ’的缩写)。第一个参数p s z C m d L i n e 指向一个命令行字符串。这通常是较早时调用G e t C o m m a n d L i n e W 而返回的值。P N u m A rg s 参数是个整数地址,该整数被设置为命令行中的参数的数目。C o m m a n d L i n e To A rg v W 将地址返回给一个U n i c o d e 字符串指针的数组。
- MFC程序获得命令行输入
- MFC程序中获得控制台的输入
- Python从命令行获得输入
- MFC argc argv 如何获得命令行参数
- [MFC]获得程序所在路径
- MFC 程序添加命令行 debug
- MFC程序处理命令行参数
- 命令行窗口程序输入问题
- c程序中获得命令行输出结果
- MFC获得当前运行程序的路径
- MFC 获得当前程序目录 当前绝对路径
- MFC 获得当前程序所在目录
- Linux命令行与shell脚本(10)--获得用户输入
- MFC程序中关于命令行的处理
- 命令行编译MFC程序(转载)
- 让MFC程序支持命令行参数
- 让MFC程序支持命令行参数
- 让MFC程序支持命令行参数
- 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
- 去除Pentaho biserver-ce-4.5.0版本OLAP报表下面的deprecatedWarning
- 分享最好的HTML5编码教程和参考手册
- uva_10815-Andy's First Dictionary
- showModalDialog,open的用法
- MFC程序获得命令行输入
- JSON学习(三) --服务器端输出JSON格式数据
- 简单邮件发送
- 关于dll封装中资源引用
- Tomcat内存设置详解
- Android学习笔记06:ListView的使用
- 炫彩界面库--动态库不再收费
- Base64加密以及sun.misc.BASE64Decoder的用法
- C++ Macro Usage