C#调用非托管DLL,释放内存的问题

SugarAnnie SugarAnnie 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用C++写了一个DLL,里面有如下参数

static int num;
static double beltLocation1x, beltLocation1y, beltLocation2x, beltLocation2y;
static double beltLocation3x, beltLocation3y, beltLocation4x, beltLocation4y;
static double houghMin, gangueMin, maoganMin, crossAlarmDistance, cannyMin, cannyMax;
static float x0, x1, k, l;
static bool isFirstFrame;

static Mat frame, gray, edge, mask, location1, location2, maoganMask, preZhoujie;
static Mat center, labels;

static vector<double> block, strip;
static vector<Vec2f> noline;
static vector<Vec2f> center_point;
static vector<Point2f> prePoints;

static Ptr<BackgroundSubtractorMOG2> mog;

static struct IMAGE_INFO image_info;
static struct ALARM_INFO alarm_info;
static struct RESULT_INFO result_info;

static VideoCapture video;

可以看到有普通变量,有opencv的Mat类,还有vector类,结构体等
然后我导出了三个函数供C#调用,分别是:

bool Init(PARAMETER_INFO *parameter); // 对上面的参数进行初始化
RESULT_INFO Process(); // 调用一些函数处理数据,赋给上面的参数,然后返回其中的一个结构体
bool CleanUp(); // 提供给C#清理内存的函数

现在我不明白在CleanUp();函数中应该如何清理内存?
int, double类型的数据需要清理嘛?
Mat类的变量的内存会自动释放嘛?
结构体类型的内存呢?
望大神不吝赐教!!
...全文

相关推荐

C#调用C++DLL传递结构体数组的终极解决方案

务必注意,调用完成后要释放分配的非托管内存,防止内存泄漏。总结,C#调用C++DLL传递结构体数组的终极解决方案包括以下步骤:1. 定义具有正确序列化的结构体。2.

weixin_38604916

C#开发者必看:VS2022中DLL调用的5个常见陷阱及解决方法

本文针对C#开发者在Visual Studio 2022中调用DLL时常见的五大陷阱,提供了详细的解决方案。内容涵盖引用路径错位、平台架构不匹配导致的BadImageFormatException、方法签名与调用约定错误、版本兼容性冲突以及非托管资源内存泄漏等核心问题,帮助开发者高效避坑,确保DLL调用稳定可靠。

h6j7k8l9p0

C#调用非托管DLL函数

一 概念 运行时处于控制之下的代码称为托管代码,反之,在运行环境(runtime)之外运行的代码称为非托管代码。 平台调用(来自consuming unmanaged dll functions)是一个可以使托管代码调用在DLL中实现的非托管函数,例如那些win32 API。它找到和调用导出的函数,同时根据需要将函数的参数(整形,字符,数组,结构体等等)通过互操作边界(interopera

Justin__Ko

C#调用Delphi编写的非托管Dll的例子源程序

在C#中,我们通常使用`string`或者`IntPtr`来映射这个类型,但需要注意字符串的生命周期管理,因为非托管代码不会自动释放内存。6.

zangq1979

如何_NET环境中使用C#调用非托管DLL

**内存管理**:非托管DLL可能使用了自己的内存管理规则,比如分配和释放内存。使用`GCHandle`或`SafeHandle`来管理这些内存,以避免内存泄漏。

courage1
评论 13
收藏 已收藏
分享
返回顶部
SugarAnnie
C# 111,128 成员 642,536 内容