cs_Diabolus
Messages postés61Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention28 septembre 2007
-
28 avril 2005 à 18:19
cs_Diabolus
Messages postés61Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention28 septembre 2007
-
28 avril 2005 à 21:12
Salut,
J'ai un problème d'importation à partir d'une DLL.
Je souhaite importer une classe qui est de type template dans mon application.
J'ai réussi à importer une fonction en C, mais je n'y arrive pas avec une classe template.
Voici mon code dans la DLL pour pouvoir l'exporter :
template <
typename T>
class
__declspec(
dllexport) maClasse{...};
et voici mon code dans mon application pour l'importer :
#using <mscorlib.dll>
...
using
namespace System::Runtime::InteropServices;
[DllImport("ChainedList/ChainedList.dll")]
class
__declspec(
dllimport) maClasse;
et ça ne marche pas car je n'indique pas qu'elle est de type template.
Je pensais mettre :
[DllImport("ChainedList/ChainedList.dll")]
template <typename T>
class
__declspec(
dllimport) maClasse;
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 28 avril 2005 à 19:26
salut,
tu peux pas importer de template non spécialisée dans une DLL, tout
simplement parce que le code d'une classe template n'est généré que
quand il est utilisé (et il est impossible de generer un code si la
classe en parametre du template n'est pas connue; comment le compilo
pourrait gerer ca??). Importe le header dans ton projet, ca suffit ....
cs_Diabolus
Messages postés61Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention28 septembre 20071 28 avril 2005 à 21:12
Merci beaucoup pour ta réponse aussi rapide.
Je ne peux pas mettre les fichiers headers car je passais par une DLL pour ne pas mettre le code. Mais je vais faire de mes classes template des classes utilisant des pointeurs sur void.
Merci beaucoup en tout cas.