我刚刚将.m文件更改为.mm并使用C++.有没有办法用Swift做同样的事情?
我想尝试编写和编译iOS和Android设备的C++代码.我已经使用XCode一段时间了(我正在为MacOS和Windows编写c ++代码).所以我想将XCode用于我的目的.
问题是我不知道如何为Android设备和iPad/IPhone编译C++代码.我想在iOS和Android上使用crossplatform-solution,但不想使用Marmalade(c ++)或其他类似的框架.
这是真的吗?:)是否有教程或其他有用的材料?
我为iOS和Android开发了一个应用程序,我正在寻找在这两个平台之间共享代码的最佳方式.
我想要做的是在本机中创建所有View(UI部分),但共享逻辑代码(控制器+模型).
在我发现的所有内容中,有3件事似乎相当不错:
1)C++ - >构建库文件使用c ++对于逻辑,我将能够在2个平台中使用.dll文件
2)Azure移动应用程序服务.是否有可能成为网络服务中的所有逻辑?问题是,如果我没有访问互联网,我的应用程序将无法使用,对吧?
3)我听说过很多关于Facebook使用的React本机,但它似乎用于创建UI,但我更喜欢用原生的方式创建它.我可以只对逻辑做出反应吗?
我有一个文件( FILE_A.cpp),其中包含一个函数体,如下所示:
vector<char *> lines_vector;
foo(my_file_path, "zzz", lines_vector, fout);
Run Code Online (Sandbox Code Playgroud)
foo 在另一个文件中定义( FILE_B.cpp)中:
void foo(char * in_file, char * keyword, vector<char *>& lines_vector, FILE * fout)
Run Code Online (Sandbox Code Playgroud)
自从 FILE_A.cpp使用FILE_B.cpp的功能,它包括它的头,这里是问题:
FILE_B.h 的所有函数头都在一个
#ifdef __cplusplus
extern "C" {
#endif
...
void foo(char * in_file, char * keyword, vector<char *>& lines_vector, FILE * fout)
...
#ifdef __cplusplus
};
#endif
Run Code Online (Sandbox Code Playgroud)
当尝试添加我的函数时,它无法识别向量。给出的错误是
1) 在 '<' 标记之前应有 ',' 或 '...'
2) '}' 标记之前的预期初始值设定项
3) 'vector' 尚未声明
这让我怀疑extern C无法解析这个。在内部使用 cpp 对象extern …