cocos2d-x移植iconv到Android平台

cocos2d-x移植iconv到Android平台,第1张

概述iconv下载(Android) 源码下载地址,已编译完的iconv包(用这个即可) ios自带libiconv.dylib,只需#include <iconv.h>即可    步骤 1.libiconv解压文件放置 直接将解压的libiconv文件夹放在cocos2dx游戏引擎cocos2d-2.1rc0-x-2.1.2目录下 libiconv中Andriod.mk文件内容为: LOCAL_PA

iconv下载(AndroID)

源码下载地址,已编译完的iconv包(用这个即可)

ios自带libiconv.dylib,只需#include <iconv.h>即可

步骤

1.libiconv解压文件放置

直接将解压的libiconv文件夹放在cocos2dx游戏引擎cocos2d-2.1rc0-x-2.1.2目录下

libiconv中Andriod.mk文件内容为:

LOCAL_PATH:= $(call my-dir)#libiconv.soinclude $(CLEAR_VARS)LOCAL_MODulE := libiconv_staticLOCAL_MODulE_filename := libiconvLOCAL_CFLAGS := \  -Wno-multichar \  -DAndroID \  -DliBDIR="c" \  -DBUILDING_liBICONV \  -DIN_liBRARYLOCAL_SRC_fileS := \  libcharset/lib/localcharset.c \  lib/iconv.c \  lib/relocatable.cLOCAL_C_INCLUDES += \  $(LOCAL_PATH)/include \  $(LOCAL_PATH)/libcharset \  $(LOCAL_PATH)/lib \  $(LOCAL_PATH)/libcharset/include \  $(LOCAL_PATH)/srclibinclude $(BUILD_STATIC_liBRARY)

2.修改自己工程中的Andriod.mk文件

LOCAL_WHolE_STATIC_liBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static libiconv_static            include $(BUILD_SHARED_liBRARY)$(call import-module,CocosDenshion/androID) $(call import-module,cocos2dx) $(call import-$(call import-module,libiconv)
蓝色为变化的内容

3.iconv.h头文件拷贝

将程序中cocos2dx\platform\third_party\win32目录下的iconv文件夹拷贝到自己工程的Classes目录下

4.程序修改

.h文件

#include iconv/iconv.h" #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) #pragma comment(lib,"libiconv.lib")  #endif/*---------------------------------------------------*/// iconv转码static int code_convert( const char *from_charset,char *to_charset,255); line-height:1.5!important">char *inbuf,size_t inlen,255); line-height:1.5!important">char *outbuf,size_t outlen );static std::string u2a( char *inbuf );string a2u( char *inbuf );
.cpp文件

 int CCommonTool::code_convert( char *temp = inbuf;     char **pin = &temp;     char **pout = &outbuf;     memset(outbuf,0,outlen);     cd = iconv_open(to_charset,from_charset);     if(cd==0) return -1;     if(iconv(cd,pin,&inlen,pout,&outlen)==-1) 1;     iconv_close(cd);     return 0; } UTF8 To GB2312*/ string CCommonTool::u2a( char *inbuf ) {     size_t inlen = strlen(inbuf);     char * outbuf = new char[inlen * 2 + 2];     string strRet;     if(code_convert(utf-8",gb23122) == 0)     {         strRet = outbuf;     }     delete [] outbuf;     return strRet; } GB2312 To UTF8string CCommonTool::a2u( return strRet; }
程序使用

CCString ccStr;
ccStr.m_sstring = CCommonTool::a2u(ccStr.m_sstring.c_str());

希望能给你帮助~

总结

以上是内存溢出为你收集整理的cocos2d-x移植iconv到Android平台全部内容,希望文章能够帮你解决cocos2d-x移植iconv到Android平台所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1052141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存