【发布时间】:2015-07-20 11:21:03
【问题描述】:
我有以下代码:
CString port = m_HOST_PORT.GetString();
ShellExecute(NULL, NULL, _T("cmd.exe"),
_T("/k \"C:\\Program Files\\Java\\jre1.8.0_45\\bin\\java\" -cp C:\\Users\\foobar\\workspace\\IEC60870\\bin main.CApp %s",
(LPCTSTR)(port)), SW_SHOWNORMAL);
当我运行 sn-p-code(较大代码的一小部分)时,命令提示符窗口会显示以下文本:未知:%s。显然,_T("%s", (LPCTSTR)(port)) 不起作用或者我不知道如何正确使用它。
如何将参数(如(LPCTSTR)(port))传递给_T()?
附:
手动输入,例如:
ShellExecute(NULL, NULL, _T("cmd.exe"),
_T("/k \"C:\\Program Files\\Java\\jre1.8.0_45\\bin\\java\" -cp C:\\Users\\foobar\\workspace\\IEC60870\\bin main.CApp 4711"),
SW_SHOWNORMAL);
将在这里工作。
【问题讨论】:
-
_T()只是一个适用于字符文字序列的宏。我很确定你的问题是重复的。 -
宏的使用应该有“实际参数过多”的警告。
标签: c++ visual-studio-2010 visual-c++ mfc