2013-03-05 60 views
0

我正在開發一個包含最新SDK的iOS應用程序,它將使用OpenCV。在iOS上使用Android C++庫

這個應用程序是從Android應用程序遷移,我將在我的iOS項目上使用它的所有C++文件。

在C++文件,我有功能的簽名像這樣的:

myFunction(JNIEnv * jenv, jclass jobj, jint width, jint height,jintArray leftDetectionRectArray, jintArray rightDetectionRectArray)

我能否使用這些C++文件,而在我的iOS代碼進行更改?還是你我必須對他們做一些改變?

你推薦我什麼?

+1

看起來你使用的是JNI,所以在它能在iOS下工作之前,必須進行一些*更改。 – trojanfoe 2013-03-05 10:26:04

回答

1

你不能在你修改的時候在你的iOS代碼中使用這些C/C++文件。

使用JNI的部分可能只是您真實代碼的接口(在純C/C++中),在這種情況下,您可以將其刪除並直接使用C/C++代碼或創建Objective-C接口。

因爲在基於iOS的設備上沒有Java虛擬機(至少沒有任何官方版本),所以JNI函數不會在iOS上定義。

+0

我知道。我將只使用'.cpp'和'.hpp'文件。你是否說我必須修改.cpp文件以添加新功能的簽名? – VansFannel 2013-03-05 10:37:54

+0

你必須將所有的refenrece移除到jni對象,類型等等(或者爲jint定義的某些tyes(如jint)進行typedef) – Geoffroy 2013-03-05 10:47:03