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

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

mais ça ne compile pas.

Comment est ce que ça marche ?
Merci
Afficher la suite 

2 réponses

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cosmobob
Messages postés
61
Date d'inscription
samedi 20 décembre 2003
Statut
Membre
Dernière intervention
28 septembre 2007
1
0
Merci
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.
Commenter la réponse de cs_Diabolus