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()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章