我正在开发一个适用于 android/iOS/windows 的应用程序,使用 C++ 代码作为核心逻辑。该应用程序使用免费的模糊逻辑库,它在 Windows Mobile、iOS 和我本地的 Ubuntu 机器上完美运行,但在 Android 下不太运行。
应用程序从 SD 卡读取 .fcl 文件,然后使用免费的模糊逻辑库解析器对其进行解析。问题是,解析器卡在解析的随机阶段。
我的项目设置的一些注释:
我在manifest.xml中启用了Android对sd卡的读/写权限。
我尝试运行的代码是来自免费模糊逻辑库网站的基本示例。
我正在使用 stlport_static 库来支持 stl 和 -frtti 编译器标志。
我的问题是:我是否缺少一些android特定的东西,比如文件编码或一些我没有设置的权限?
我想到的一些笔记:
文件压缩应该不是问题,因为据我所知,SD卡上的文件没有压缩,我可以部分解析该文件。
使用其他模糊逻辑库是不可能的,因为我不能使用 GPL 许可的库。我发现的唯一的其他库没有手册/如何使用,也无法解析 fcl 标准。
免费的模糊逻辑库使用了很多 wchar_t,这可能是一个问题。
感谢您的宝贵时间,希望能提供一些帮助;)
目前Android不支持wchar_t类型。好吧,您可以使用它,但结果不会与任何其他操作系统上的结果相同。
通过将免费模糊逻辑库中的所有 wchar_t 和 wstring 类型更改为其相应的 char 和 string 类型,我能够使解析器工作。好吧,仍然存在一些巧妙的不一致,但没有什么是我无法处理的;)。
结论:不要在android c++程序中使用宽字符。