C#调用C++dll,第一次可以顺利执行,第二次就提示“尝试读取或写入受保护的内存,这通常指示其他内存已损坏”。

img
dll里的函数没有参数,就是点云pcl处理文件的一个算法,用winform的按钮控制,第一次点击按钮正常执行,但是第二次就提示“尝试读取或写入受保护的内存,这通常指示其他内存已损坏”错误了。要把winform重启才能再使用一次。

dll中是不是占用了其他资源没释放,检查C++代码。
参考: C#调用c++的dll报错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏“ - 亲福 - 博客园 一:c++代码内部报错引起。可能是空指针或者其他。二:需要从c#代码调试进入c++代码。可以吧c++的dll和pdb拷入工程项目的debug目录下面。三:我发现的错误时在C++内部声明啦全局变量,这个 https://www.cnblogs.com/kissfu/p/3471740.html

c++ dll的问题,去debug一下这个dll的源代码吧。