MFC应用程序参数传递

来源:互联网 发布:八周年纪念剃刀数据 编辑:程序博客网 时间:2024/06/06 07:09

转自:http://zhupengyue.blog.51cto.com/227198/714178

写了一个MFC的程序,要求如果是命令行启动传递参数时直接执行并且不显示图形界面,如果双击执行,则需要显示图形界面。

这个程序是调用http://116.213.72.20/sms_bluewings/sms_bluewingsinfo.asmx接口来发送短信(短信报警。未处理中文问题,所以只能发送非中文字符。),如果需要的可以留言。

在程序的InitInstance()中添加以下内容:

  1. argc=0;
  2. LPWSTR *argv=::CommandLineToArgvW(::GetCommandLineW(),&argc);
  3. if (argc==5)
  4. {
  5. arg_Username=argv[1];
  6. arg_Password=argv[2];
  7. arg_Phone=argv[3];
  8. arg_Message=argv[4];

判断参数是否符合要求,符合则

  1. CSmsDlg dlg;
  2. m_pMainWnd = &dlg;
  3. if (argc==5)
  4. {
  5. dlg.SendSms(arg_Username,arg_Password,arg_Phone,arg_Message);
  6. ::PostQuitMessage(1);
  7. }
  8. else
  9. {
  10. int nResponse = dlg.DoModal();
  11. if (nResponse == IDOK)
  12. {
  13. // TODO: Place code here to handle when the dialog is
  14. // dismissed with OK
  15. }
  16. else if (nResponse == IDCANCEL)
  17. {
  18. // TODO: Place code here to handle when the dialog is
  19. // dismissed with Cancel
  20. }
  21. }

这样如果是带参数启动,则执行sendsms方法后退出程序,否则启动图形界面。