Pb d'importation d'une classe template à partir d'une DLL avec Visual Studio .NE [Résolu]

Signaler
Messages postés
61
Date d'inscription
samedi 20 décembre 2003
Statut
Membre
Dernière intervention
28 septembre 2007
-
Messages postés
61
Date d'inscription
samedi 20 décembre 2003
Statut
Membre
Dernière intervention
28 septembre 2007
-
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;

mais ça ne compile pas.

Comment est ce que ça marche ?
Merci

2 réponses

Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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 ....



a+
Messages postés
61
Date d'inscription
samedi 20 décembre 2003
Statut
Membre
Dernière intervention
28 septembre 2007
1
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.