首先说明下环境 c# vc 要确定是c#调用c++库函数 还是反之
如果是c#调用c++库函数,C++建立一个非托管类库项目,C#项目引用就可以了
C++类库中导出函数的声明如下:
extern "C" __declspec(dllexport) int* Detect(char* data,int width,int height);需要注意的是:
要使用extern "C" 标明,否则C#调用时会找不到方法名;其次要使用__declspec(dllexport)标明为导出函数。
C#调用时,首先需要声明外部方法的签名,如下:
[DllImport("DetectDll.dll", CallingConvention = CallingConvention.Winapi)]
......都很熟悉我就不多说了
最后调用非托管代码需要使用unsafe关键字