gpt4 book ai didi

iphone - 使用将网络用于 iphone 应用程序 objective-c 的 c/c++ 库

转载 作者:可可西里 更新时间:2023-11-01 03:59:49 26 4
gpt4 key购买 nike

我目前正在评估是否可以将 c/c++ 库用于我的特定 iPhone 项目。原始库大量使用特定于 Windows 的代码(例如,它包括 windows.h 和 winsock.h)。我知道我将不得不重写使用 Windows 特定代码的部分,并将 winsocks 替换为例如 bsd 套接字。或者尝试转换为 objective-c++ 并使用 Apple 文档中推荐的 IOS 特定网络 api。

但正如 Apple 的文档所示,在 iOS 中,网络只允许使用 C 和 Objective-C 代码。 “iOS 支持用 C 和 Objective-C 编写的网络代码。” ( https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/ )

这听起来好像我必须用 objective-c 重写整个库才能使其在 IOS 上运行。或者在 objective-c 中编写一个包装器类并使用原始(适用于 bsd sockets api 或 objective-c++)库是否足够? -> Using C/C++ static libraries from iPhone ObjectiveC Apps

但实际的网络代码仍然是用 c/c++ 编写的,而不是 objective-c。

这有可能奏效吗?我不想做所有调整库的工作,然后发现这种方法不起作用。

有没有人尝试过类似的东西?

最好的问候,迈克

最佳答案

您应该能够毫无问题地将您的 C++ 库的一部分重写为使用 BSD 套接字而不是 Windows 套接字 API。

Apple 不禁止 C++ 代码访问网络,但是 iOS 提供的唯一网络 API 是 C(BSD 套接字、CoreFundation)或 Objective-C(Foundation...),也许这就是您混淆的根源。您可以在自己的代码或静态链接库中自由混合 C、C++ 和 Objective-C 代码。

关于iphone - 使用将网络用于 iphone 应用程序 objective-c 的 c/c++ 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com