gpt4 book ai didi

c# - "New"运算符(operator)在外部工作 "C"

转载 作者:太空狗 更新时间:2023-10-29 19:58:47 26 4
gpt4 key购买 nike

我为我的 C# 项目使用 C++ DLL,DLL 有一个内部类,由外部函数创建和销毁,例如:

 class myClass
{
int N;
public:
//some elements and some functions

myClass(int n)
{
N=n;
}
};

__declspec(dllexport) myClass * builderF(int n)
{

return new myClass(n);

}

__declspec(dllexport) void destroyerF(myClass * c)
{

delete c;

}

这些在 extern "C"{} 主体中。

编译器如何让我使用C++特性是“C”空间?不是只有C代码吗?这已经过测试并且有效(我已经开始为 C# 制作一个 opencl 包装器)。我以前只使用纯 C 代码。

最佳答案

extern "C" 不会将编译器更改为 C 编译器。它只说任何函数(或函数指针)都将使用他们接口(interface)中的 C 约定。所以你仍然可以做你可以在函数中用 C++ 做的任何事情;这只是事情像名称重整和调用约定,这将是受影响。

关于c# - "New"运算符(operator)在外部工作 "C",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969491/

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