将思岚公司的SDK(C++)用C#开发【环境配置篇】

时间:2022-04-24 09:35:33

/*

背景:将思岚公司的sdk用c#进行开发。由于思岚公司的sdk使用C++开发,所以必须先一步将skd用C++封装成DLL库,然后提供给C#进行开发。所以C#同C++的交互是必须讨论的问题。

*/

问题描述:

用C++封装成dll供C#调用时,报出错误:内存泄漏。

经过网上查找资料之后发现问题可能出在:C++内部声明了全局变量,这个全局变量会保存上次的状态,每次调用C++方法时需要重新初始化,而方法内的局部变量会随着方法的结束而被释放。


//解决问题思路的更新

//2018.02.23

//从知乎上看到有网友说使用C++/CLI来解决项目中使用大量的C++的问题。


//2018.3.6

//已经解决了C#在调用DLL之后报出:内存泄漏 的错误。

我在全局声明了

SlamwareCorePlatform sdk;

然后在子函数中使用了sdk这个未经初始化的变量。所以导致指针指向了未知的内存,导致程序报错。



其他注意问题:

思岚公司规定了必须使用VS2010进行开发,经过尝试,其他版本的编译器不能保证程序正确运行(即使步骤一样)。

同时必须将思岚公司官网中提供SDK中的DLL文件夹下面中的

将思岚公司的SDK(C++)用C#开发【环境配置篇】

将思岚公司的SDK(C++)用C#开发【环境配置篇】

这两个文件夹放在计算机 C:\Windows\SysWOW64 目录下(如果Windows系统是X86的,则放入system32中),这样参考思岚公司的SDK的说明手册就可以进行二次开发了。