我希望有一个基于对话框的小应用程序,它传递了命令行参数,因此,使用VC ++ 6我运行了应用程序向导并选择了一个MFC对话框应用程序。
这不会自动配备命令行参数。所以我走了 到MSDN来刷新我的内存。 MSDN声明所有C ++程序 有一个main()或一个wmain()函数和argc等参数 到这里。我刚创建的应用程序没有这些。
因为显然有一个函数是应用程序的入口点,所以可以 我坚持这里的论点?我确实试过这个,但我不相信我 实际上正在编辑正确的功能。 (我能找到哪个功能 作为项目设置中的main()函数或类似函数?)
基本上,我如何让我的程序读取命令行参数。
另外作为副业。对于一个简单的程序,这是,我真的没有 想要使它成为一个MFC应用程序,从而超过MB的大小。是否有应用程序向导模板库允许我创建非MFC对话框 应用
答案 0 :(得分:32)
使用 GetCommandLine(),它返回正在执行的文件的名称, 其次是争论。
应用程序成员 m_lpCmdLine (像yourApp.m_lpCmdLine
一样使用)仅包含参数。
您可能会发现CWinApp::ParseCommandLine()有用。
还可以尝试使用ATL COM向导创建非MFC对话框应用程序(选择.exe选项,而不是.dll)。
答案 1 :(得分:5)
是的,请参阅CWinApp:ParseCommandLine。另请查看CCommandLineInfo类。
答案 2 :(得分:2)
在MFC应用程序中,入口点功能是' initInstance()',如main()
或wmain()
。使用CWinApp::m_lpCmdLine
中的initInstance()
访问命令行。
答案 3 :(得分:1)
要获取原始命令行,请使用以下代码(将在任何Win32 / MFC应用程序上运行):
TCHAR *pCommandLine = ::[GetCommandLine()][1];
int nArgc = 0;
LPWSTR *pArgv = ::CommandLineToArgvW(pCommandLine, &nArgc);
如果未提供任何参数,则nArgc应该为1,如果存在则大于1。然后,pArgv 1将是第一个参数,依此类推...
答案 4 :(得分:-2)
"是否有应用程序向导模板库可以让我创建非MFC对话框应用程序?"
您可以使用" Win32项目制作非MFC应用程序"新项目中的选项 - > Visual C ++ - >的Win32。
或者只是使用C#,到目前为止更容易。