我在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;
}
Run Code Online (Sandbox Code Playgroud)
这些都是外部的"C"{}体.
编译器如何让我使用C++功能是"C"空间?它不仅适用于C代码吗?这是经过测试和运行的(我开始为C#制作一个opencl包装器).我之前只使用纯C代码.
extern "C"不会将编译器更改为C编译器.它只表示任何函数(或函数指针)将在其接口中使用C约定.所以你仍然可以在函数中用C++做任何事情; 它只会影响名称修改和调用约定.
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |