|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
[C++] DLL & Template, il linker non trova nulla...
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! Qualcuno sa come si potrebbe fare per risolvere? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1459
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Si, parla del mio problema... però nella sua soluzione io dovrei specificare nel DLL tutti i possibili tipi... ma spesso a me serve un vettore di un tipo sconosciuto nell'engine...
EDIT: PhysX contiene una classe NxArray<class T> che è utilizzabile senza problemi in progetti esterni... e con tipi definiti fuori di PhysX! Ma come fanno? Ultima modifica di Tommo : 14-03-2008 alle 15:03. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Risolto... è bastato togliere _declspec(dllexport) dalla definizione della classe e poi includere il file h nel nuovo progetto... tanti problemi per nulla
Ultima modifica di Tommo : 14-03-2008 alle 20:59. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:47.



















