1
我一直在轉換我們的軟件使用字符串表,所以我們可以開始角色出多種語言。一般來說,確保所有硬編碼字符串現在都從字符串表中加載。它正在游泳!CString.LoadString char類之外的初始化
不過,我碰到了這個代碼,並已經獲得了大量的編譯器錯誤的努力的CString之間的轉換和CHAR []:
struct UnitDetails
{
char Description[50] ;
COLORREF Colour ;
long UnitLength ; // In OneTenthMS
} ;
UnitDetails UDetails[ TIME_UNIT_COUNT ] =
{
{"Hrs", HOURS_TREND_DISPLAY_COL , OneHourInTenthMilliSeconds },
{"Mins", MINUTES_TREND_DISPLAY_COL, OneMinuteInTenthMilliSeconds },
{"Secs", SECONDS_TREND_DISPLAY_COL, OneSecInTenthMilliSeconds }
} ;
CTrendDisplay::Method(CDC* pDC)
{
[...]
pDC->DrawText(UDetails[j1].Description, &r, DT_RIGHT) ;
}
然而,經過多方努力,我試圖修改代碼,這樣的:
struct UnitDetails
{
CString Description ;
COLORREF Colour ;
long UnitLength ; // In OneTenthMS
} ;
CString sHrs(MAKEINTRESOURCE(IDS_HOURS));
CString sMins(MAKEINTRESOURCE(IDS_MINUTES));
CString sSecs(MAKEINTRESOURCE(IDS_SECONDS));
UnitDetails UDetails[ TIME_UNIT_COUNT ] =
{
{sHrs, HOURS_TREND_DISPLAY_COL , OneHourInTenthMilliSeconds },
{sMins, MINUTES_TREND_DISPLAY_COL, OneMinuteInTenthMilliSeconds },
{sSecs, SECONDS_TREND_DISPLAY_COL, OneSecInTenthMilliSeconds }
} ;
CTrendDisplay::Method(CDC* pDC)
{
[...]
pDC->DrawText((LPCTSTR)(UDetails[j1].Description), &r, DT_RIGHT) ;
}
,並得到了以下編譯器錯誤:
error C2440: 'initializing' : cannot convert from 'class CString' to 'struct UnitDetails'
沒有使這篇文章超長而無聊,我嘗試了許多其他的解決方法,但不斷陷入困境。
有沒有人有一個洞察力,可以帶來全新的視角?
感謝,
馬特