So I am having problems adding the C ++ dll compiled in Mingw to my msvc project. I fixed the problem with binding to some people, but now when I call the function in the dll, I added that I get the error "Error reading location data 0x00000014", which interrupts the new operator method in new.cpp (in visual studio 2010). I read that there are differences related to memory management, and I was wondering if this could be the source of my problems.
The specific dll I'm trying to create and run is cvBlobs, available here - https://code.google.com/p/cvblob/ , which for some reason is unknown to me many times faster when compiling with mingw.
I am new to these things, but I was wondering if it could happen that the dll mingw calls the msvc new () method? Does this make sense? I looked at the help on the mingw website, but so far it has been useful to bring me to this point, it seems that this does not help to solve this problem. Please let me know if this is something else you would like to provide to me.
EDIT: I included the specific problematic code from my compiled Visual Studio code in the hope that it might give a little clarity.
Here is the stack trace I talked about above
cvBlobs.dll!6e313f95() [Frames below may be incorrect and/or missing, no symbols loaded for cvBlobs.dll] cvBlobs.dll!6e30135b() msvcr100d.dll!operator new(unsigned int size) Line 59C++ nuon.dll!std::_Allocate<std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >::_Node>(unsigned int _Count, std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >::_Node * __formal) Line 36 + 0x15 bytes C++ nuon.dll!std::allocator<std::_Tree_nod<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >::_Node>::allocate(unsigned int _Count) Line 187 + 0xb bytes C++ nuon.dll!std::_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >::_Tree_val<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >(const std::less<unsigned int> & _Parg, std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> > _Al) Line 550 + 0xc bytes C++ nuon.dll!std::_Tree<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >::_Tree<std::_Tmap_traits<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> >,0> >(const std::less<unsigned int> & _Parg, const std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> > & _Al) Line 699 C++ nuon.dll!std::map<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> > >::map<unsigned int,cvb::CvBlob *,std::less<unsigned int>,std::allocator<std::pair<unsigned int const ,cvb::CvBlob *> > >() Line 107 C++ nuon.dll!nuon::MarkerDetector::detect(cv::Mat & input, std::vector<nuon::Marker,std::allocator<nuon::Marker> > & detectedMarkers, nuon::CameraParameters camParams, float markerSizeMeters, bool setYPerperdicular) Line 201 C++
I hope this change can help clarify this for someone.