1

我是 Windows 编程的绝对新手。我正在编写一些将使用“C”库的应用程序(也将包括一些 POSIX API)。这个库也将由我编写。

至于可移植性问题,我想我可以设法将这个库用于 iOS、Android 和 Linux 平台,但是当我想将它移植到 Windows 时,我不确定它会如何工作。有人可以解释一下吗?

基本上我需要一个可以编译我的库的编译器,基本上我需要适用于 Windows 的 GCC(不确定我可以使用什么——MinGW 被排除在外,因为他们说不支持 POSIX)。我不知道它是否可以在 Visual Studio 2012 上完成。

4

1 回答 1

1

这似乎是一个可以用明确的“是的,但是……”来回答的问题;)当您说“POSIX”时,您指的是哪个功能集?

特别是与文件相关的功能被沙箱严重降低了有用性。例如 fopen 只能处理你的 app bundle 或 localStorage 中的文件。

其他的,如 strncasecmp 可以使用#define 在 Win8 上编译,因为还有其他具有相同签名的函数可用 (_strnicmp)。对于另一组函数 (strcpy),Microsoft 提供了增强版本 (strcpy_s),它们的工作方式略有不同。不过,您仍然可以使用旧版本,方法是使用#define 禁用安全变体。

最后,您可能需要在您的库代码中混合使用#ifdef-encapsulated 部分,并且可能需要一些包装器以像 W8 应用程序中所预期的那样以良好的异步方式包装同步代码。

于 2013-02-25T13:46:19.670 回答