一般情况下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工程的主线程类初始化之后,弹出