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'
没有使这篇文章超长而无聊,我尝试了许多其他的解决方法,但不断陷入困境。
有没有人有一个洞察力,可以带来全新的视角?
感谢,
马特