在一个iOS Swift项目中,我包括了一组使用C ++构建的库(HikVision / hcnetsdk.h),尽管我设法构建了框架,但标头文件无法编译,Xcode正在提供我有多个“ C不支持默认参数”。
例如在这一行:
NET_DVR_API BOOL __stdcall NET_DVR_SetConnectTime(DWORD dwWaitTime = 3000, DWORD dwTryTimes = 3);
我已经检查了项目的构建设置,据我所知一切都设置为使用C ++,所以我对为什么Swift将其编译为C并抱怨默认参数感到困惑。
我的桥接头文件如下:
#import "ldapTest.h"
#import "hcnetsdk.h"
#import "HikDec.h"
我相当确定这是某个地方的构建设置,但我不知道哪个。
答案 0 :(得分:0)
因此,事实证明您不能在Swift桥接头文件中包含包含C ++特定关键字的C ++头文件。
针对特定情况,我确实设法完成了对“ C ++”标头的“ C”替换,并进行了一些细微调整。
这是我在网上找到的HikVision HCNetSDK.h的“ C”头文件: https://github.com/shulianghe/new-project/blob/master/pro/hcSrc/incCn/HCNetSDK.h
如果其他C ++头文件存在类似的问题,则可以复制以上链接中的某些#ifdef __cplusplus
语句以查看其操作方式。