Bonjour,
Je developpe une DLL avec un POO :
Voici le code de la DLL :
Puis voici le code qui appelle la DLL :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Mere { Mere() {}; virtual bool Test() { return true; } }; class Fille : public Mere { //Classe derive Fille() {}; bool Test() { return false; } }; //Exportation d'un fonction pour la creation d'un objet extern "C" bool __declspec(dllexport) __cdecl newClass(Mere* mere); bool __declspec(dllexport) __cdecl newClass(Mere* mere) { acq = new Fille(); return ( acq != NULL) ; }
Donc il y a plantage sur la derniere ligne. Je sais pourquoi il plante car l'objet mere dans mon prog est en fait une classe fille. Donc si vous piger mon pb et que vous avez une solution pour faire une sorte d'héritage depuis un DLL, Merci d'avance :DCode:
1
2
3
4
5
6
7
8
9 //charge la library HINSTANCE dll = LoadLibrary( TEXT("mydll.dll") ); //Definie la fonction typedef bool (*newClassFunc)(Mere* mere); Mere* mere = NULL; //Recupere l'adresse de la focntion dans la DLL newClassFunc newClass = (newClassFunc)GetProcAddress(dll,"newClass"); newClass(mere); bool res = mere.Test(); //Plantage