2013-02-23 22 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

相关问题