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
A voir également:
Pb d'importation d'une classe template à partir d'une DLL avec Visual Studio .NE
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 ....
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.