Xamarin.ios 在MonoTouch中链接到C++原生库

Xamarin.ios 在MonoTouch中链接到C++原生库,xamarin.ios,monodevelop,Xamarin.ios,Monodevelop,我正在阅读有关将本机库链接到MonoTouch的内容,特别是以下文档: 这里描述了链接到C库。是否也可以链接到MonoTouch的C++库?我对MonoTouch非常陌生,特别是对导入库,所以我很感谢任何关于我可能试图导入C++库的问题的建议,如果这是可能的话。将在一个Objto-C库中包装C++库,然后使用BTACK导入这是一个很好的路径?还是有更简单的方法?记住,我对C++和Objul-C的知识最好被描述为危险的。p> 我之所以问这个问题是因为我需要利用Sybase中的C++ API来访问他

我正在阅读有关将本机库链接到MonoTouch的内容,特别是以下文档:

这里描述了链接到C库。是否也可以链接到MonoTouch的C++库?我对MonoTouch非常陌生,特别是对导入库,所以我很感谢任何关于我可能试图导入C++库的问题的建议,如果这是可能的话。将在一个Objto-C库中包装C++库,然后使用BTACK导入这是一个很好的路径?还是有更简单的方法?记住,我对C++和Objul-C的知识最好被描述为危险的。p> <>我之所以问这个问题是因为我需要利用Sybase中的C++ API来访问他们的ULTALITE数据库。我已经成功地获得了一个示例应用程序,它访问了使用XObjo C的XuleCube中的UpLeLe+C++ API,但现在我尝试将这个示例移植到MonoTouch。示例应用程序可在此处找到:

关于在Xcode中使用API,Xcode的Sybase文档提到了以下内容:

本教程使用ULLITE C++ API。为了消除对C类型的需要,将源编译为C++。要将项目编译为C++,请执行以下操作:

在“在生成设置中搜索”框中,输入编译源作为。 从值字段中的选项中选择Objective-C++

MonoTouch使用这个API的含义是什么?

你当然可以使用C++ API,但是你需要把它包在一个C API中,或者一个Objc+bTousAPI来和这个对话。调用C API使用PInvoke,C++库使用符号修改。虽然从理论上讲,您可以对损坏的符号进行pinvoke,但这不是一个好主意,因为损坏是特定于编译器的。

谢谢,杰夫。我有一种感觉,我必须包装C++ API来使用它;我只是希望有一个更简单的方法,因为它是一个相当大的api包装。嗯,我想我知道这个周末我要做什么了!呵呵,我想我会用ObjC+btouch来包装它,因为我已经设法在ObjC中构建了一个简单的helloworld库,然后用btouch绑定类型。我必须说,我很高兴看到触摸是多么容易使用我第一次尝试就成功了!哇再次感谢你的帮助。你在这方面做得更进一步了吗?我已经用SWIG构建了C存根和C对象包装器,现在我只是想让MonoTouch的链接正常工作,但是如果你已经解决了所有这些问题,我不介意看一看。嗨,Kenny。是的,我很久以前就开始工作了。我会把源代码放到github上,这样你就可以看一看。@BruceHill-你有没有在github上更新过解决方案?我的朋友正在做这件事,他说这不在问题的链接中。。。