在全局覆盖时,在C ++中使用默认的new / delete运算符?

时间:2016-02-23 07:49:45

标签: c++ opencv operator-overloading new-operator delete-operator

现在我正试图让两个开源项目一起工作(OBS和OpenCV),但我遇到了一个问题。

据我所知,OBS会覆盖删除功能。而且它与OpenCV中的对象不相处。它导致一些我无法理解的分段错误。

那么可以在代码的某个部分使用默认的删除功能吗?在我的项目中OpenCV的使用仅限于一个线程,所以如果可以告诉编译器我想使用默认的new和删除某个函数那么它应该没问题。 我想知道是否可以用命名空间做这样的事情,但我根本不熟悉C ++,所以我不知道如何做到这一点。

为了更详细地介绍我面临的问题,我使用的是OpenCV 2.4.11(尝试3.0.0,但基本上情况相同),Win 7 x64下的Visual Studio 2013。 当我动态地将库链接到OBS时,面部检测线程(我需要调用OpenCV)在删除某些对象时会产生分段错误。当我静态链接库(来自其他人的建议)时,程序在一些动态初始化中在OpenCV代码内启动时崩溃,因为自定义内存管理器尚未初始化。

还有其他问题与我面临的问题很接近,但似乎并没有解决问题。我会在这里留下链接: Ignore globally overridden new/deletea library forces global overloads of new/delete on me!

我正在使用的OBS链接就在这里 https://github.com/jp9000/OBS/commit/9ab069c961c768fcdbc53b8ab2cd58540e1ee1f0

0 个答案:

没有答案