一个在Irrlicht中会常用的字符串转换函数

让Irrlicht支持中文后,编程过程中不免经常会用到char* 到wchar_t*的转换,看了上次转载的那篇关于L"xx"的文章,写了个小函数供使用.
#define xmalloc(s) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (s))
#define xfree(p)   HeapFree (GetProcessHeap(), 0, (p))
 
wchar_t *str2wstrptr(const char *pStr)
{
    PSTR pMultiByteStr = (PSTR)pStr;
    PWSTR pWideCharStr;
    int nLenOfWideCharStr;
    // 利用API函数MultiByteToWideChar()来把a转化成unicode字符
    nLenOfWideCharStr = MultiByteToWideChar( CP_ACP, 0, pMultiByteStr, -1, NULL, 0);
    pWideCharStr = (PWSTR)xmalloc(nLenOfWideCharStr * sizeof(WCHAR));
    MultiByteToWideChar( CP_ACP, 0, pMultiByteStr, -1, pWideCharStr, nLenOfWideCharStr );
 return pWideCharStr;
}
调用str2wstrptr后用xfree释放xmalloc申请到的空间.
 
 
示例:
char name[] = "岁月无声";
wchar_t* pmyname= str2wstrptr(name);
转换后就可以在irrlicht用了:
ITextSceneNode *bill = Scene->addTextSceneNode(fonts[1],pmyname);
xfree(pmyname);
可以不用Scene->addTextSceneNode(fonts[1],L"岁月无声");了. 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红火吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值