|

楼主 |
发表于 2004-7-28 21:22:17
|
显示全部楼层
现在是这个样子的,
我的程序通过java的一个接口获得一个wchar_t 串pwszText.
现在我想打印pwszText,用printf好像不行.请教如何打印?是不是wprintf?
然后我想把pwszText拷贝到pwszBuffer中.
pwszBuffer = new wchar_t[wcslen(pwszText)+1];
memset(pwszBuffer, 0, lSize + 1);
wcscpy( pwszBuffer, pwszText );
程序在这里出错.请教1
然后转化:
pszText = new char[(size_t)(lSize + 1) * 2];
if(pszText == NULL)
{
delete[] pwszBuffer;
return NULL;
}
memset(pszText, 0, (lSize + 1) * 2);
#ifdef PLAT_WIN32
nlen = WideCharToMultiByte(CP_ACP, 0, pwszBuffer, -1,
pszText, (lSize + 1) * 2, NULL, NULL);
#else// linux systerm //程序中执行这个
nlen = wcstombs( pszText, pwszText, 2*(lSize+1) );
#endif
printf("WideChar To MultiByte returns %d\n", nlen);
printf("pszText is \"%s\"\n", pszText);
打印出来的是
WideChar To MultiByte returns -1
pszText is ""
我用法哪里出错了?请有经验的牛人帮我!
第一次写unicode的东西,感觉什么都不会啊,惭愧! |
|