如何初始化数据类型为const WCHAR*的变量



GdipCreateFontFamilyFromName第一个参数需要一个const WCHAR*,我如何用它初始化opt.fontName的值?

struct GDImDrawText
{
HWND hWnd;
ARGB fontColor;
int fontSize;
int fontStyle = 0;
WCHAR* fontName;  // <--- Do i need to use another data type? which?
int x = 0;
int y = 0;
int w;
int h;
};  
//...
GDI gdip;
GDImDrawText opt;
opt.fontColor = 0xffffff;
opt.fontSize = 14; 
opt.fontName = L"Tahoma"; // <--- ???
opt.hWnd = hWnd; 
opt.x = 20;
gdip.mDrawText(g, opt);
//...
void GDI::mDrawText(GpGraphics* g, GDImDrawText opt)
{
GpFontFamily* fontFamily;
GdipCreateFontFamilyFromName(opt.fontName, 0, &fontFamily);
//...
}

是否需要将fontName的声明修改到结构中?

WCHAR是一个宽字符,通常表示16位,而不是char的默认8位。例如,它被用来表示编码标准,如UTF-16,其不能仅用8位编码(如ASCII(。

通过在字符串前面指定L,可以正确初始化wide char array。这告诉编译器该字符串实际上是CCD_ 9而不是"0";正常的";CCD_ 10。

最新更新