2013-02-23 26 views
1

我是Windows編程的絕對新手。我正在編寫一些將使用'C'庫的應用程序(也包括一些POSIX API)。這個圖書館也將由我撰寫。至於可移植性問題,我想我可以設法將這個庫用於iOS,Android和Linux平臺,但是當我想將它移植到Windows時,我不確定它將如何工作。有人可以解釋嗎?基本上我需要一個編譯器,可以編譯我的庫,基本上我需要GCC的窗口(不知道我可以使用 - MinGW排除他們說不支持POSIX)。我不知道它是否可以在Visual Studio 2012上完成。使用'C'庫與POSIX的Windows 8應用程序

回答

1

這似乎是一個可以用明確的「是,但是......」來回答的問題;)當您說'POSIX'時,哪個函數你指的是?

特別是與沙箱相關的文件相關功能在實用性上大大降低。例如。 fopen只能處理你的應用包或localStorage中的文件。

其他的,像strncasecmp可以在Win8上使用#define進行編譯,因爲還有其他函數具有相同的可用簽名(_strnicmp)。對於另一組函數(strcpy),Microsoft提供了增強版本(strcpy_s),它們的工作方式有所不同。不過,您仍然可以使用舊版本,通過#define禁用安全變體。最後,你可能需要在你的庫代碼中包含#ifdef封裝的部分的混合,並且可能需要一些包裝,以便以W8應用程序中所期望的異步方式封裝同步代碼。

+0

嗯..有幾個#ifdef的想法,但我在看這個API!,特別是信號量和自旋鎖......以及我將鏈接到哪個庫?像-lpthread,它在windows中有什麼相同之處,我應該使用什麼編譯器? – devgp 2013-02-28 02:52:27

+0

對於編譯器,您可能會遇到MS Visual Studio。我會考慮使用Premake或這樣的跨平臺項目。如果你想創建一個WinRT組件,你可能需要做額外的工作。關於pthreads,這就是我在原始文章中提到的:如果您正在尋找Win8兼容性,您需要編寫特定於平臺的代碼。以下是與Win8商店應用程序兼容的允許功能的列表:http://msdn.microsoft.com/en-us/library/windows/apps/br205762.aspx#threads_and_synchronization – 2013-02-28 09:05:44

相關問題