c# – “新”运算符在外部“C”中工作

我在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;

 }

这些都是外部的“C”{}体.

编译器如何让我使用C功能是“C”空间?它不仅适用于C代码吗?这是经过测试和运行的(我开始为C#制作一个opencl包装器).我之前只使用纯C代码.

解决方法:

extern“C”不会将编译器更改为C编译器.它
只说任何函数(或函数指针)都会使用
他们界面中的C约定.所以你仍然可以
你可以在C函数中做的任何事情;这是唯一的事情
就像名称修改和调用约定一样
影响.

上一篇:vxvorks学习2(双向链表和环形缓冲的使用)


下一篇:使用Python 3设置virtualenv时出错