Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;iOS应用中的算法_C++_Objective C_Algorithm_Ios5 - Fatal编程技术网

C++ C++;iOS应用中的算法

C++ C++;iOS应用中的算法,c++,objective-c,algorithm,ios5,C++,Objective C,Algorithm,Ios5,我有一个C#的DSP音频aglo,我想把它整合到iOS中。一个朋友建议我转换为C++而不是Objto-C,因为它是平台无关的。这是一种好的做法吗?有什么陷阱需要注意吗?我的本能是用Obj-C保持原生。我如何访问iOS?C++中的C++函数? 谢谢 < P>你可以自由地将C++与Objul-C混合,称为“ObjuleC++”。要让编译器知道这是您的意图,您需要将.m文件重命名为.mm 混合这样的代码不一定是一个好主意,如果您的目标是可移植性,那么它也毫无意义。最好是将你的C++保存在单独的 .CP

我有一个C#的DSP音频aglo,我想把它整合到iOS中。一个朋友建议我转换为C++而不是Objto-C,因为它是平台无关的。这是一种好的做法吗?有什么陷阱需要注意吗?我的本能是用Obj-C保持原生。我如何访问iOS?C++中的C++函数?

谢谢

< P>你可以自由地将C++与Objul-C混合,称为“ObjuleC++”。要让编译器知道这是您的意图,您需要将
.m
文件重命名为
.mm

混合这样的代码不一定是一个好主意,如果您的目标是可移植性,那么它也毫无意义。最好是将你的C++保存在单独的<代码> .CPP < /Cord>文件中,并创建一个裸露的包装类(Obj-C++),以在ObjtoVoC和C++对象之间传递数据(有效地包装器是中介Obj-C方法和C++函数来发送和返回数据)。 我最近在github和上发布了几个简单的图像处理示例。值得一看,看看C++代码是如何从Obj-C.<

OpenCV库有C++接口,所以在项目中使用C++是不可避免的。可以将所有代码混搭到.mm文件中,但这是一种容易搞乱的方法

关于可移植性,您可以通过将UI代码与数据操作代码分离来实现这一点。无论如何,你应该这样做,所以在这些例子中,C++中的模型将是很少的额外工作。该模型是可移植的,UI是并且应该是特定于平台的

您是否应该这样做将取决于其他因素,例如您对每种语言的熟练程度、框架和库的选择以及移植的可能性。不过,音频处理将是这种方法的自然选择

关于样品的一些细节
如果无法运行代码,请不要担心(openCV框架可能会很麻烦……),主要的问题是查看代码是如何拼凑在一起的。我尽量使示例非常简单

<> > C++代码是从包含OpenCV发行版的C++样本中移植的。为了评估这种可移植性的想法,我试图尽可能少地修改它们

大致上,我必须解决两个问题……
1/删除了任何UI代码(因此我们只是将数据发送回obj-C端)。

2/修改main()函数,使其成为obj-C端的可调用函数。在.cpp头文件中,我声明了一个简单的类,其中包含一个静态函数,以便于实现这一点。显然,还有更详细的阐述的余地,但这应该足以让您了解这个想法。

唯一真正跨平台的语言是C89,我可以保证您不想用它重写它。非常感谢。非常有用,我将研究您在github上引用的示例。