Primero de todo... no se si escribir aquí o en el subforo de programación gráfica... si eso que algun admin lo mueva.. a vuestro gusto.
Vale, al tema:
Resulta que la maldita Cal3D (la libreria esa de animaciones esqueletales) solo funciona bajo VS6. SI la uso bajo VS 2005 en el constructor salta un std::bad_alloc. Mi línea es esta:
coremodel = new CalCoreModel("tarracomodel");
i el error salta
static _Elem *__CLRCALL_OR_CDECL _Copy_s(_Elem *_First1, size_t _Size_in_bytes, const _Elem *_First2,
size_t _Count)
{ // copy [_First1, _First1 + _Count) to [_First2, ...)
// _DEBUG_POINTER(_First1);
// _DEBUG_POINTER(_First2);
_CRT_SECURE_MEMCPY(_First1, _Size_in_bytes, _First2, _Count);
return _First1;
}
en esta funcion de "iosfwd". He buscao por google problemas similares i nada... poca gente usa cal3d ya...
Alguien tiene idea de porqué pasa? Qualquier ayuda es bienvenida!
Muchas gracias!
PD:Leí que tenía que compilar Cal3D usando el 2005 en vez del 6 por eso de compatibilidades... pero salta lo mismo...
Más info!
He probado y con la cal3d de debug (cal3d_d) sí funciona. Ahora probaré que opciones de compilación son las que provocan que la libreria no funcione... Esto debe de ser alguna opción del compilador del VS2005.
Alguna idea?
Gracias!
Edito: El problema está en el flag Multi-threaded DLL (/MD). Si uso Multi-threaded Debug DLL (/MDd) funciona, si no no. Alguien sabe por qué y qué hace ese flag? De hecho se come la mitad del DLL en tamaño: pasa de 1,1mb a 0,6mb
donde trabajo usamos cal para las animaciones y funciona sin problemas en 2005, eso si que lo usamos estatico
Si??? Pues si pudieras decirme cómo lo hacéis me ayudarías un montón. Sólo quiero la inicialización (usando new y coremodel) y cómo compilads Cal3D para obtener el dll.
Eso de estático yo driría que no lo hago. Cómo lo compilo estático? Lo prové pero me daba errores.
Gracias!