遇到的问题:html
作Unity for Android项目时遇到了两个问题,一是用boost序列时,windows下序列化的二进制文件在Android上没法读取,序列化为文本文件则没有问题。二是在C++与C#进行数据传递时wchar_t*类型的字符串只能显示第一个字符。linux
分析:windows
问题出在wchar_t上,缘由是windows下的wchar_t占2个字节,而linux下则占4个字节,C#读字符串时遇到‘0’时即中止,因此致使后面的字符没法读取。二进制序列化也是一样的问题, windows下序列化为2字节的wchar_t在Android上读取时会出现错位的状况,致使读取失败。app
解决方法:.net
gcc中加入'-fshort-wchar'编译选项,NDK则在application.mk文件中加入'APP_CPPFLAGS += -fshort-wchar'字段。解决问题。htm
注:这篇博文中提到加入该编译选项会出现第三方库的编译问题,但暂时尚未遇到。blog
http://blog.sina.com.cn/s/blog_702c2db50101g9y7.html
---------------------
做者:fangchenown
来源:CSDN
原文:https://blog.csdn.net/fangchenown/article/details/50378522
版权声明:本文为博主原创文章,转载请附上博文连接!字符串