gpt4 book ai didi

c++ - 使用 Swift 桥接 header “C 不支持默认参数”

转载 作者:行者123 更新时间:2023-11-30 10:57:04 28 4
gpt4 key购买 nike

在一个 iOS Swift 项目中,我包含了一组使用 C++ (HikVision/hcnetsdk.h) 构建的库,虽然我已经成功构建了框架,但头文件不会编译,并且 Xcode 给出我有多个“C 不支持默认参数”。

例如这一行:

NET_DVR_API BOOL __stdcall NET_DVR_SetConnectTime(DWORD dwWaitTime = 3000, DWORD dwTryTimes = 3);

我已经检查了项目的build设置,据我所知,所有内容都设置为使用 C++,所以我很困惑为什么 Swift 将其编译为 C,并提示默认参数。

我的桥接头文件如下:

#import "ldapTest.h"
#import "hcnetsdk.h"
#import "HikDec.h"

我相当确定这是某个地方的build设置,但我不知道是哪一个。

最佳答案

事实证明,您不能将包含 C++ 特定关键字的 C++ 头文件包含到 Swift 桥接头文件中。

针对我的具体情况,我确实设法找到了“C++” header 的“C”替代品,并进行了一些细微的调整。

这是我在网上找到的 HikVision HCNetSDK.h 的“C”头文件: https://github.com/shulianghe/new-project/blob/master/pro/hcSrc/incCn/HCNetSDK.h

如果有人对其他 C++ 头文件有类似的问题,您可以复制上面链接中的一些 #ifdef __cplusplus 语句,看看它是如何完成的。

关于c++ - 使用 Swift 桥接 header “C 不支持默认参数”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53846603/

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