【发布时间】:2013-12-18 16:53:10
【问题描述】:
我有以下代码,它根据从命令行输入的命令行字符串调用两个不同的函数。我的应用程序名称是 minopc.exe
所以当用户在命令提示符下输入以下代码时
minopc.exe -regserver
srv.GBRegisterServer is called .
当用户在命令提示符下输入以下代码时
minopc.exe -unregserver
srv.GBUnRegisterServer is called .
代码是
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
TCHAR *cmd_line = GetCommandLine();
TCHAR *token;
if ( (token = strchr(cmd_line, L'-')) == NULL ) token = strchr(cmd_line, L'/');
if (token)
{
token++;
if ( !lstrcmpi(token, LPCSTR("regserver")) || !lstrcmpi(token, LPCSTR("r")) )
{
srv.GBRegisterServer(&guid, L"WesOPC", L"WesOPC Server", L"WesOPC.Sample.MinOPC", L"1.0");
return 0;
}
if ( !lstrcmpi(token, LPCSTR("unregserver")) || !lstrcmpi(token, LPCSTR("u")) )
{
srv.GBUnregisterServer(&guid);
return 0;
}
}
现在,如果用户在 minopc.exe -regserver 和 minopc.exe -unregserver 旁边输入其他内容,我想显示错误。但它接受其他命令,甚至在像 minopc.exe -a 等这样编写时运行程序。
【问题讨论】:
标签: c shell winapi command-line command-line-arguments