【发布时间】:2014-05-21 20:01:25
【问题描述】:
我刚开始使用 GDI+,会有不少转换。
我绘制的文本瞬间显示为一堆随机符号。我将问题追溯到转化率。
代码在底部更新
const wchar_t* convert::stringToWideChar(string String) {
wstring wideString;
for(int i = 0; i < String.length(); i++)
wideString += wchar_t( String[i] );
return wideString.c_str();
}
用作:
testing = "Two Two";
const wchar_t* buf = convert::stringToWideChar(testing);
path.AddString(buf, wcslen(buf), &gFontFamily, FontStyleBold, 72, ptOrg, &strFormat);
背景是文本最初的绘制方式。 “Level 0”是最初应该绘制的。 (在屏幕截图中,初始文本按原样淡化了。)
有什么想法可以更快地进行转换吗? (最奇怪的是它只发生在随机的特定字符串中,即“Two”有效,“Two Two”无效,“Two Too”有效。
更新
wstring convert::stringToWideChar(string String) {
wstring wideString;
for(int i = 0; i < String.length(); i++)
wideString += wchar_t(String[i] );
return wideString;
}
用作:
const wchar_t* buf = convert::stringToWideChar("leveljjj").c_str();
【问题讨论】:
-
澄清一下,
stringToWideChar返回一个指向局部变量wideString拥有的缓冲区的指针,该缓冲区在方法退出时被破坏。
标签: c++ typeconverter