gpt4 book ai didi

c - Swift调用C API时如何处理指针

转载 作者:可可西里 更新时间:2023-10-31 23:44:23 26 4
gpt4 key购买 nike

c 库 API:mycapi.h

typedef struct{
int itype;
double * dx;
double * dy;
}MyObjInfo;

typedef MyObjInfo * MyObjHandle;

MyObjHandle MyObjInit(const char *pFile);

添加 myapi.h 作为模块

我的快速代码:

import Foundation
import mycapiModule


var h:MyObjHandle = MyObjInit("/home/a")
var o:MyObjInfo = h.memory
////to do somethings
//...
h.destroy()
h = nil
print("\(o.itype)")

所以我的问题是:

  1. 为什么在 h.destroy() 之后我仍然可以使用 o
  2. 我必须销毁 ho 吗?

最佳答案

不能直接访问。

要访问 C/Cpp 库,在带有 XCode 的 Swift 编程语言中使用以下方式。

添加main.mm文件

#import <UIKit/UIKit.h>
#import "ProjectName-swift.h"
//#import "AppDelegate.h"

int main(int argc, char * argv[]) {

@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

评论 - AppDelegate 中的@UIApplicationMain

现在,通过使用 bridge,您可以访问 C/Cpp 库或直接从 Swift 编程语言访问。

关于c - Swift调用C API时如何处理指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34170698/

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