2011-12-21 64 views

回答

3

是的,我們有這種方式建立的運輸應用程序。我們有一個OS層(Mac上的Obj-C,Windows上的C++,C++/CLI和C#組合)以及共享的便攜式圖層。

一個主要問題是要在類定義中遵守規範,以便在可移植/共享代碼中不使用操作系統明細(例如Obj-C或C++/CLI語法)。

您可以創建庫來隔離代碼,但我們不需要那樣做。

+0

我知道在Windows中,您可以通過DLL使用C++代碼,但是如何你是否將C++層導入到你的Objective-C代碼中? – Roman 2011-12-21 02:19:37

+0

我們有一個簡單包含兩組文件的XCode項目。我們按文件夾進行整理,但都包含在輸出應用程序中。我們爲幾組C++文件提供靜態庫,這些文件也簡單地鏈接到主項目中。 – jschroedl 2011-12-21 04:27:57

3

是的,這絕對有可能。這並不罕見。例如,大多數WebKit都是C++代碼。您可以使用Objective-C++橋接C++和Objective-C代碼。

+0

可以將C++代碼以dll在Windows上工作的方式製作成庫,並將庫導入到xcode項目中? – Roman 2011-12-21 02:12:18

+0

@阿曼:是的。這很常見。 – 2011-12-21 02:48:18

2

是的,這是可能的,真的很有用。有時候最好將應用程序分成兩部分:Objective-C GUI應用程序和帶有業務邏輯的C/C++守護程序。它簡化了跨平臺的應用程序開發過程。

+1

兩者可以一起啓動和停止,還是守護程序必須在後臺連續運行? – Roman 2011-12-21 02:16:01

+0

您可以使用launchctl來管理守護程序活動,如啓動,重新啓動,終止等。 http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/launchctl。 1.html http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html – 2011-12-21 03:46:43

相關問題