问题描述
STRINGTABLE 项目:
- ID:
IDS_TPL_SWAP_CONFIRMATION
- 值:
5149
- 标题:
Swap assignments:\n\n%1 - %2 [%3]\n%4 - %5 [%6]\n\nPlease confirm.
有时当我尝试这段代码时:
CString strPrompt = _T("");
strPrompt.FormatMessage(IDS_TPL_SWAP_CONFIRMATION,m_pEntry->GetMeetingDateAsstring(),(LPCTSTR)strExistingName,(LPCTSTR)strExistingDescription,pReplacement->GetMeetingDateAsstring(),(LPCTSTR)getter(pReplacement),(LPCTSTR)strReplacementDescription);
我有时发现 %1
值与 %4
值重复,即使 pReplacement->GetMeetingDateAsstring()
实际上是不同的日期。
最后我把代码改成这样:
strPrompt.LoadString(IDS_TPL_SWAP_CONFIRMATION);
strPrompt.Replace(_T("%1"),m_pEntry->GetMeetingDateAsstring());
strPrompt.Replace(_T("%2"),strExistingName);
strPrompt.Replace(_T("%3"),strExistingDescription);
strPrompt.Replace(_T("%4"),pReplacement->GetMeetingDateAsstring());
strPrompt.Replace(_T("%5"),getter(pReplacement));
strPrompt.Replace(_T("%6"),strReplacementDescription);
这保证对我有用。我使用 FormatMessage
语法是因为我的应用程序支持超过 50 种语言,而且我无法确定每种语言是否都需要相同顺序的数据。
如前所述,所有数据都是正确的,除了在某些情况下,它会在最终输出中将第一个日期重新用于第四个项目。 FormatString
有什么我需要了解的问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)