![](/img/trans.png)
[英]A value of type “const wchar_t *” cannot be used to initialize an entity of type “LPCSTR”
[英]How to initialize a variable of data type 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
。 這告訴編譯器該字符串實際上是一個wide char array
,而不是一個“普通” char array
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.