在cmd窗口下,直接在当前路径下输入 XXX.exe可以执行我的MFC程序。
双击XXX.exe也能执行。我想实现这样一个功能:如果通过cmd启动并带参数,则不显示UI,直接输出一些信息到控制台。
如果手动双击程式启动,显示UI,供调试。在init的时候:m_sysPara = AfxGetApp()->m_lpCmdLine;
if(!m_sysPara.IsEmpty())
{
MessageBox(m_sysPara);
OnBnClickedOk();
exit(0);
}
现在问题出现了。请问我如何往console里面输出一些信息?

解决方案 »

  1.   

    隐藏窗口并把所有AfxMessageBox或MessageBox改成向printf或cout
      

  2.   

    ++其实我觉得你可以先写控制台版本 等稳定了在直接移植MFC
      

  3.   

    我如果是通过cmd执行的,就不会有窗口显示啊!
    如果有cmd参数,就不显示UI。直接使用printf cout的话,就会在新的cmd窗口输出。
    我要在当前cmd窗口输出啊
      

  4.   

    程序启动的时候判断父进程是Explorer.exe还是CMD.exe,然后走不同的逻辑
      

  5.   

    我觉得你输出到cmd里就是想调试跟踪程序,这样的话,写日志也可以啊,或者在主程序入口写个console的子线程,有什么需要调的酒输出到子线程里,很多软件都会带这么一个console窗口来运行的,随时可以看运行情况。
      

  6.   

    我的用戶界面就是cmd窗口或者MFC對話框。這部分已經實現了。
    問題是cmd窗口的時候,輸出的信息會重新開啟一個cmd窗。
    如果是console程式,可以直接打印在當前窗口。
      

  7.   

    GetCommandLine/CommandLineToArgvW()得到命令行参数,然后解析,根据不同的结果来确定UI的样式即可