我有一个代码,其中同时使用了 Cstring 和 wchar_t。我想我可以用 wchar_t 而不是 Cstring 做同样的工作,那么为什么要使用 Cstring。
在 m_szChargeType 和 m_szConfirmedChargeType 中我有 A。起初我的代码是
wchar_t m_szChargeType[LEN_CHARGE_TYPE];
wchar_t m_szConfirmedChargeType[LEN_CHARGE_TYPE];
LoadString(GetResourceInstance(),IDS_MS_CI_TYPEA,m_szChargeType,LEN_CHARGE_TYPE);// fills value A in m_szChargeType
LoadString(GetResourceInstance(),IDS_MS_CI_TYPEA,m_szConfirmedChargeType,LEN_CHARGE_TYPE); // fills value A in m_szConfirmedChargeType
CString strSpace(IDS_MS_SPACE); //IDS_MS_SPACE has a space in rc file and IDS_MS_TYPE have rate in ini file
CString strType(IDS_MS_TYPE);
strSpace += strType;
wsprintf(m_szChargeType, _T("%s%s"), m_szChargeType, strSpace);
wsprintf(m_szConfirmedChargeType, _T("%s%s"), m_szConfirmedChargeType, strSpace);
m_szChargeType 和 m_szConfirmedChargeType 的结果为 A0,但预期为 A Rate
然后我做了
wchar_t strSpace[LEN_CHARGE_TYPE];
wchar_t strType[LEN_CHARGE_TYPE];
LoadString(GetResourceInstance(),IDS_MS_SPACE,strSpace,LEN_CHARGE_TYPE);
LoadString(GetResourceInstance(),IDS_MS_TYPE,strType,LEN_CHARGE_TYPE);
wsprintf(m_szChargeType, _T("%s%s%s"), m_szChargeType, strSpace, strType);
wsprintf(m_szConfirmedChargeType, _T("%s%s%s"), m_szConfirmedChargeType, strSpace, strType);
它工作得很好。并且输出与预期的 A RATE 相同