Tommo
14-03-2008, 10:30
Salve,
ho implementato nella nostra engine una classe template FastVector, che è appunto un std::vector 10x più veloce.
Ho già proceduto a sostituire tutti gli std::vector all'interno della nostra engine, e tutto funziona a meraviglia....
Però, quando compiliamo il DLL e proviamo ad usare FastVector in un progetto esterno, tutto compila ma il linker non trova NESSUN metodo!
Ho letto in giro e pare che questo sia un problema diffuso di conflitto fra DLL e Template: il primo "congela" il codice mentre il secondo lo riscrive a compile-time... e non sono riuscito a trovare soluzioni decenti in giro.
Tuttavia Ogre3D, ad esempio, ha una classe template Singleton che è usabilissima fuori della DLL! :muro:
Qualcuno sa come si potrebbe fare per risolvere?
Grazie :D
ho implementato nella nostra engine una classe template FastVector, che è appunto un std::vector 10x più veloce.
Ho già proceduto a sostituire tutti gli std::vector all'interno della nostra engine, e tutto funziona a meraviglia....
Però, quando compiliamo il DLL e proviamo ad usare FastVector in un progetto esterno, tutto compila ma il linker non trova NESSUN metodo!
Ho letto in giro e pare che questo sia un problema diffuso di conflitto fra DLL e Template: il primo "congela" il codice mentre il secondo lo riscrive a compile-time... e non sono riuscito a trovare soluzioni decenti in giro.
Tuttavia Ogre3D, ad esempio, ha una classe template Singleton che è usabilissima fuori della DLL! :muro:
Qualcuno sa come si potrebbe fare per risolvere?
Grazie :D