gpt4 book ai didi

带有 .NET : are memory leaks determinate? 的 C++ dll

转载 作者:行者123 更新时间:2023-11-28 07:27:46 25 4
gpt4 key购买 nike

我有 Windows 窗体 (C#) 应用程序,它使用 C++ dll(非托管代码)。图片加载完毕,调用dll函数进行处理。问题是: exception: std::bad_alloc 当我连续多次从 dll 调用函数时抛出。 可能问题是因为没有删除 dll 中的内存,可能是因为 Windows 窗体中的垃圾收集器。如何判断应用程序中的哪个项目导致内存泄漏?

最佳答案

我最近遇到了类似的问题,我设计了一个有用的解决方案来解决这个问题。您可以编写一个名为“freeObject”的解构函数,只是与 ~* 函数不同,您应该显式调用“freeObject”函数。这是一个例子。

void VideoAbstraction::freeObject(){
videoCapture.~VideoCapture();
videoWriter.~VideoWriter();
backgroundImage.release();
currentStartIndex.release();
currentEndIndex.release();
mog.~BackgroundSubtractorMOG2();
gFrame.release();
gForegroundMask.release();
gBackgroundImg.release();
currentMask.release();
vector<ObjectCube>().swap(partToCompound);
vector<Mat>().swap(compoundResult);
vector<Mat>().swap(indexs);
vector<Mat>().swap(indexe);
vector<int>().swap(frame_start);
vector<int>().swap(frame_end);
}

外呼部分就是这样。

void UserVideoAbstraction::UserfreeObject(){
userVB->freeObject();
}

关于带有 .NET : are memory leaks determinate? 的 C++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18398843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com