【发布时间】:2012-01-04 21:27:47
【问题描述】:
我正在阅读有关将本机库链接到 MonoTouch 的内容,特别是此文档:
http://monotouch.net/Documentation/Linking_Native_Libraries
这里描述了到 C 库的链接。是否也可以从 MonoTouch 链接到 C++ 库?我对 MonoTouch 非常陌生,尤其是导入库,所以如果确实可能的话,我将不胜感激有关尝试导入 C++ 库时可能遇到的问题的任何建议。将 C++ 库包装在 Objective-C 库中,然后使用 btouch 导入这是一个不错的途径吗?还是有更简单的方法?请记住,我对 C++(以及与此相关的 Objective-C)的了解可以最好地描述为“危险的”。 ;)
我问的原因是我需要使用 Sybase 的 C++ API 来访问他们的 Ultralite 数据库。我设法获得了一个示例应用程序,该应用程序使用 Objective-C 访问在 Xcode 中工作的 Ultralite C++ API。但现在我正在尝试将此示例移植到 MonoTouch。示例应用程序可以在这里找到:
https://github.com/BruceHill/Ultralite-Names-Sample-ObjC
Xcode 的 Sybase 文档提到以下内容,参考在 Xcode 中使用 API:
本教程使用 UltraLite C++ API。为了消除转换为 C 类型的需要,请将源代码编译为 C++。要将项目编译为 C++:
- 在 Search in Build Settings 框中,输入 Compile Sources As。
- 从 Value 字段中的选项中选择 Objective-C++
这对在 MonoTouch 中使用此 API 有何影响?
【问题讨论】:
-
您是否碰巧对此有所了解?我已经使用 SWIG 构建了 C 存根和 C# 对象包装器,目前正试图让 MonoTouch 的链接正常工作,但如果你已经解决了所有这些问题,我不介意看看。
-
嗨,肯尼。是的,我很久以前就开始工作了。我会考虑将源代码放到 github 上,以便您查看。
-
@BruceHill - 你有没有更新过 GitHub 上的解决方案?我的朋友正在研究这个确切的东西,并说它不在问题的链接中......