我是靠谱客的博主 成就身影,最近开发中收集的这篇文章主要介绍cvBlob 作为静态库链接问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

场景

    由于编译的时候,代码生成的运行库选择MDd,但是看到在堆中释放资源的时候,开始出错,并且是在dll中释放资源出错,初步怀疑是在不同的模块中申请和释放资源导致的问题,问题是在所有的dll中生成都是使用MDd,原则应该没有什么问题。预计将cvBlob的代码拷贝到测试例子中,而不是作为静态库加载看看是否会避免崩溃的问题


  ntdll.dll!00000000775c9e51()

  [下面的框架可能不正确和/或缺失,没有为 ntdll.dll 加载符号]

  ntdll.dll!00000000775a6965()

  ntdll.dll!000000007753ec51()

  KernelBase.dll!000007fefd55304a()

> cvblobDLL.dll!_CrtIsValidHeapPointer(const void * pUserData=0x0000000000417530)  行 2036 C++

  cvblobDLL.dll!_free_dbg_nolock(void * pUserData=0x0000000000417530, int nBlockUse=1)  行 1322 + 0xa 字节 C++

  cvblobDLL.dll!_free_dbg(void * pUserData=0x0000000000417530, int nBlockUse=1)  行 1265 + 0xe 字节 C++

  cvblobDLL.dll!operator delete(void * pUserData=0x0000000000417530)  行 54 + 0x12 字节 C++

  cvblobDLL.dll!std::allocator<std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::_Node>::deallocate(std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvTrack *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack *> >,0> >::_Node * _Ptr=0x0000000000417530, unsigned __int64 __formal=1)  行 183 C++

  cvblobDLL.dll!std::_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::~_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >()  行 556 C++

  cvblobDLL.dll!std::_Tree<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >::~_Tree<std::_Tmap_traits<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> >,0> >()  行 792 + 0xa 字节 C++

  cvblobDLL.dll!std::map<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> > >::~map<unsigned int,cvb::CvTrack * __ptr64,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack * __ptr64> > >()  + 0x28 字节 C++

  cvblobDLL.dll!cvRenderTracks(const std::map<unsigned int,cvb::CvTrack *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvTrack *> > > * tracks=0x000000000016f018 [0](), _IplImage * imgSource=0x000000000016ec70, _IplImage * imgDest=0x000000000016ed00, unsigned short mode=15, CvFont * font=0x0000000000541cf0)  行 417 + 0xd 字节 C++

  main.exe!processVideo(char * videoFilename=0x000000013fda0fa0)  行 74 C++

  main.exe!main()  行 86 C++

  main.exe!__tmainCRTStartup()  行 555 + 0x19 字节 C

  main.exe!mainCRTStartup()  行 371 C

  kernel32.dll!00000000774159cd()

  ntdll.dll!000000007754a561()


转载于:https://blog.51cto.com/fengyuzaitu/1730318

最后

以上就是成就身影为你收集整理的cvBlob 作为静态库链接问题的全部内容,希望文章能够帮你解决cvBlob 作为静态库链接问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部