Bueno
-- DLL
- World.h
http://pastebin.com/j65fvA4K (linea
- World.cpp
http://pastebin.com/TkxgPEZi-- Program
- Gameloop.h
http://pastebin.com/wNKUW55G- Gameloop.cpp
http://pastebin.com/1S3NEw6L problema en linea 7 y 12
Les paso el codigo para que tengan una idea (este no compila, le faltan cosas por sacar para que quede compilable).
Bueno la DLL la compilo y lo linkeo estaticamente con Box2D y al programa, le linkeo la DLL y Box2D(biblioteca estatica)
En la linea 2 y 3 creo el Mundo y obtengo el b2World, las lineas que siguen son para definir un body y en la linea 7 se cae por corrupcion de memoria (lo he seguido paso a paso y cuando Box2d pide memoria cambian los datos(por ejemplo habia una variable en 1 y luego del allocate sale en 1231231) y se cae.
Ahora en vez de hacer la linea 7 yo puedo usar una funcion alternativa:
b2Body *World::createBody(b2BodyDef *def){
return world.CreateBody(def);
}
definida en la linea 30 de World.h y FUNCIONA!!!, pero ahora se cae en la linea 12.
También he intendado copiar todo el codigo y compilarlo en la DLL y FUNCIONA TAMBIÉN!!!
Entonces lo que creo que sucede que el problema esta en pasar la variable
b2World &world = m_world->getWorld();
Linea 3 de Gameloop.cpp
pero ¿por qué?
No tengo idea.
Saludos, gracias de antemano