读书人

MFC运用命令行参数

发布时间: 2013-07-09 09:50:48 作者: rapoo

MFC使用命令行参数
大家好,我请教个问题,我做了一个mfc程序,这个程序需要接收一个命令行参数,然后我就在工程-》属性-》配置属性-》调试-》命令行参数中输入了“www.baidu.com”(我的程序需要打开一个网页),然后在程序中使用CString addr = AfxGetApp()->m_lpCmdLine;也得到了我输入的“www.baidu.com”,但是运行时却出现D:\xxx\CEF\CEF\www.baidu.com was not found(前面的路径是我的工程路径),这是什么原因,是我设置有错吗,还是那个地方没有设置。

谢谢! MFC 命令行参数
[解决办法]
用 __argc 判断个数 __argv 取参数
第一个参数是程序启动命令行 后面的才是参数

[解决办法]
用GetCommandLine()
[解决办法]
把 “D:\xxx\CEF\CEF\www.baidu.com” 的路径 去掉。
[解决办法]
你在调试-》命令行参数 输入的东西 会带上路径, 所以 要 砍掉 路径
你可以用 strrchr("d:\\xxxxx",'\\') 来 砍掉 路径。
[解决办法]
运行 是 在 “debug” 目录 下 ?
调试 是 在 工程目录下。
[解决办法]
__argc 表示个数
__argv 表示参数
__argv[0] 就是你启动应用程序的完整路径
__argv[1] 传入的一个参数
__argv[n] 传入的第n-1个参数


for(int i=0; i<__argc; i++)
{
TRACE(_T("arg%d = %s\n"), i, __argv[i]);
}


还可以用 PathGetArgs 可以取出参数 自己解析
[解决办法]
通常 在 “debug” 下 运行程序。
IDE 设置的 参数, 不会 起作用

读书人网 >VC/MFC

热点推荐