概述
场景
由于编译的时候,代码生成的运行库选择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 作为静态库链接问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复