我已经以下代码:如何将参数传递给`_T()`?
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);
当运行该代码段码(一小部分从一个更大的代码),则该命令提示窗口出现用以下文本:未知:%S 。显然,_T("%s", (LPCTSTR)(port))
不起作用,或者我不知道如何以正确的方式使用它。
如何将参数(LPCTSTR)(port)
传递给_T()
?
P.S:
手工键入它,如:
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()'只是一个与字符字面序列一起工作的宏。我很确定你的问题是重复的。 –
你应该得到一个“太多的实际参数”警告宏使用。 – molbdnilo