怎么使应用程序支持命令行吗?
比如,
c:\> test.exe abc 启动了test程序, test程序可检测到参数是abc
对我来说,那是相当的困难。~~
比如,
c:\> test.exe abc 启动了test程序, test程序可检测到参数是abc
对我来说,那是相当的困难。~~
解决方案 »
- 用vc写了个界面程序,发现vista系统下,当按下 ALT 键导致对话框窗口上的文字消失,这是什么原因呢?(附上代码)
- 响应最小化消息的问题:
- 编译错误lnk2019 ,麻烦大家帮我解决一下
- 经典socket问题,不清楚的都来看看,同时请高手指点指点
- vc6为什么不认OPENFILENAME?
- 有个编码表:a:01,b:00,c:1,现在有一串字符:abcabaabc……,我该怎么用编码写到文件里呢?二进制写具体怎么作阿?急救!!
- Rich Edit控件的Debug,请各位高手LookLook。
- vs 求大神帮忙看看哪边有问题?
- 谁有用来制作工具栏按钮的图标库,小的,请大家帮忙!
- 今天第一次来,先送点分给大家,本来要给一半100分,但好像只能给20分哦,hoho~~
- 有没有人注意过浩方对战平台的主界面窗口上菜单的颜色都跟普通菜单不一样啊,连其中WebBrowser控件的颜色都改了,是怎么实现的?
- 怎样解决变量类型定义的问题,在线等,谢谢~~~~~~~~~~~~~~
这就是命令行吧
char * cmdline = ::GetCommandLine(); 可以返回命令行但是在控制台输入c:\> test.exe abc 会提示“ 找不到abc程序”,,, 丫的,不晓得怎么回事
说说原理如何?
{
for (int i = 1; i < __argc; i++)
{
LPCTSTR pszParam = __targv[i];
BOOL bFlag = FALSE;
BOOL bLast = ((i + 1) == __argc);
if (pszParam[0] == '-' || pszParam[0] == '/')
{
// remove flag specifier
bFlag = TRUE;
++pszParam;
}
rCmdInfo.ParseParam(pszParam, bFlag, bLast);
}
}
看看它的源码吧.
char * cmdline = ::GetCommandLine();
char szArg[MAX_PATH] = "";
char szExe[MAX_PATH] = "";
sscanf(cmdline, "%s %s", szExe, szArg);
if (strcmp(szArg, "abc") == 0)
{
CString str;
str.Format("exe: %s; arg: %s", szExe, szArg);
AfxMessageBox(str);
}
你怎么写入命令行参数的,是不是没有指定exe路径?