cocos2dx 显示中文的三种方法

//随便在cpp中写下列函数,不用再.h文件声明
BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)
{
 DWORD dwMinSize;
 dwMinSize = WideCharToMultiByte(CP_UTF8,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
 if(dwSize < dwMinSize)
 {
  return false;
 }
 WideCharToMultiByte(CP_UTF8,NULL,lpcwszStr,-1,lpszStr,dwSize,NULL,FALSE);
 return true;
}


//在cpp中调用
    
    wchar_t str[100] = {L"小朋友,试一试根据黑色的轮廓把小动物们拖进去吧!"};
    char strs[200] = {0};
    WCharToMByte(str,strs,sizeof(str)/sizeof(strs[0])); 
    pLabel = CCLabelTTF::create(strs, "CourierNewPS-ItalicMT", 30);
    pLabel->setColor(ccc3(0,0,0));
    pLabel->setPosition(ccp(512,700));
    this->addChild(pLabel,1);


//另外一个方法,无意从某人的博客看到,借鉴下

声明:

//转换中文
char* G2U( const char* gb2312 )
{
	int len = MultiByteToWideChar(CP_ACP, 0, gb2312, -1, NULL, 0);    
	wchar_t* wstr = new wchar_t[len+1];    
	memset(wstr, 0, len+1);    
	MultiByteToWideChar(CP_ACP, 0, gb2312, -1, wstr, len);    
	len = WideCharToMultiByte(CP_UTF8, 0, wstr, -1, NULL, 0, NULL, NULL);    
	char* str = new char[len+1];    
	memset(str, 0, len+1);    
	WideCharToMultiByte(CP_UTF8, 0, wstr, -1, str, len, NULL, NULL);    
	if(wstr) delete[] wstr;    
	return str;
}

//调用

	char* ch1 = G2U("请输入账号");
	CCLabelTTF* test= CCLabelTTF::create(ch1, "Arial", 24);
	test->setPosition(ccp(100,100));
	this->addChild(test);
	CC_SAFE_DELETE(ch1);


用cocos2d-x自带的iconv库来转码,来实现中文显示,具体参考:

http://momowing.diandian.com/post/2013-01-16/40047183777


编译到android版本上,可以查看我的一篇博客:


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值