Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何包装C++;函数,该函数以C或Objective-C++;_C++_C_Wrapper_Opencascade - Fatal编程技术网

C++ 如何包装C++;函数,该函数以C或Objective-C++;

C++ 如何包装C++;函数,该函数以C或Objective-C++;,c++,c,wrapper,opencascade,C++,C,Wrapper,Opencascade,我正在尝试在Cocoa框架中为我的应用程序构建一个查看器。代码的核心是用C++编写的,为了在Cocoa窗口中渲染,我必须将C++代码包装在Swift中 我打算通过在C中包装C++代码,然后在Swift中调用C函数来实现这一点。然而,挑战在于我必须包装一个返回类对象的函数 我的函数makeCurve()定义为: // makeCurve.cpp Geom_BSplineCurve makeCurve() { std::string fileName = "SRCROOT/resou

我正在尝试在Cocoa框架中为我的应用程序构建一个查看器。代码的核心是用C++编写的,为了在Cocoa窗口中渲染,我必须将C++代码包装在Swift

我打算通过在C中包装C++代码,然后在Swift中调用C函数来实现这一点。然而,挑战在于我必须包装一个返回类对象的函数

我的函数
makeCurve()
定义为:

// makeCurve.cpp
Geom_BSplineCurve makeCurve()
{    
    std::string fileName = "SRCROOT/resources/NACA63015A_processed.dat";
    Standard_Integer num_coordinates = 51; // Number of coordinates
    Hydrofoil f(fileName, num_coordinates, 5, CLOCKWISE_LE);

    return f.getCurve();
}
其中
Geom_BSplineCurve
是OpenCascade库中定义的类对象。我不想修改库


如何继续用C包装上述函数?

您可以在堆上分配对象,并重新将指针指向它。这基本上是您唯一的选择。您可以在堆上分配对象,并重新将指针指向它。这基本上是你唯一的选择。