2

Cstringとwchar_tの両方が使用されているコードがあります。Cstringの代わりにwchar_tを使用しても同じ作業ができると思うので、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レートでした

それから私はしました

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);  

それはうまくいきました。そして出力は期待されたものと同じでしたARATE

4

1 に答える 1

2

CStringはクラスであるため、機能を提供します。wchar_tは単なる基本タイプであり、単一のワイド文字を表します。私はあなたが話していたと思いますwchar_t*

それは、なぜあなたが以上を使うべきなのかを尋ねるようなものです。std::stringchar*

于 2012-06-25T09:53:20.587 に答える