cvBlob 作为静态库链接问题

  1. 云栖社区>
  2. 博客>
  3. 正文

cvBlob 作为静态库链接问题

技术小胖子 2017-11-08 07:47:00 浏览915
展开阅读全文

场景

    由于编译的时候,代码生成的运行库选择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() 



     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1730318,如需转载请自行联系原作者



网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注