Я пытаюсь использовать повышение в моей игре box2d.Но когда я создаю b2world, boost вылетает.
#include <Box2d/Box2D.h>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
namespace fs = boost::filesystem;
int main(int argc, char *argv[])
{
b2World *world = new b2World(b2Vec2(0.0f, -10.0f), true);
fs::path full_path(fs::initial_path<fs::path>());
delete world;
return 0;
}
Когда я комментирую строку с box2d или кодом boost, все работает нормально.Но они не хотят работать вместе.
Ошибка: необработанное исключение в 0x5d9031ea (msvcr90d.dll) в Game.exe: 0xC0000005: расположение чтения нарушения доступа 0xccccccc0.
> msvcr90d.dll!operator delete(void * pUserData=0xcccccccc) Line 52 + 0x3 bytes C++
msvcp90d.dll!std::allocator<unsigned short>::deallocate(unsigned short * _Ptr=0xcccccccc, unsigned int __formal=3435973837) Line 146 + 0x9 bytes C++
msvcp90d.dll!std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::_Tidy(bool _Built=true, unsigned int _Newsize=0) Line 2168 C++
msvcp90d.dll!std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::~basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >() Line 917 C++
Game.exe!boost::filesystem3::path::~path() + 0x2e bytes C++
Game.exe!main(int argc=1, char * * argv=0x003a4ca0) Line 32 + 0x19 bytes C++
Game.exe!__tmainCRTStartup() Line 582 + 0x19 bytes C
Производится только в режиме отладки.
Неважно, где я создаю объект b2World: после full_path () или нет.Ошибка приводит даже к тому, что я создаю объект b2World в другом классе или в файле проекта.