|
|
|
|
Bonjour,
J'essaye d'utiliser une classe d'une library avec seulement Loadlibrary.
Le compilo me jette avec l'erreur suivante :
useclass error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall Ctestdll::putstr(char *)" (__imp_?putstr@Ctestdll@@QAEXPAD@Z) référencé dans la fonction _main
Le lien de ma source :
http://pagesperso-orange.fr/sivaller/shareclass.zip
Merci ;
Configuration: Windows XP Internet Explorer 6.0
Non, en fait je ne crois que c'est durant l'import de ta fonction que ça ne va pas.
class Ctestdll {
public:
Ctestdll(void);
virtual void putstr(char *sy);;
char *s;
// TODO : ajoutez ici vos méthodes.
};
Plus loin tu fais: class Ctestdll2 : Ctestdll{
public:
void putstr(char *sy);
// TODO : ajoutez ici vos méthodes.
};
void Ctestdll2::putstr(char *sy)
{
printf("héhé");
Ctestdll::putstr(sy);
}
Tu appelles la méthode Ctestdll::putstr dans Ctestdll2::putstr Le soucis c'est que Ctestdll::putstr n'est implémentée nulle part, on a juste son interface mais pas son contenu. De deux choses l'une: _ Soit tu donnes un implémentation à cette méthode _ Soit tu la déclares virtuelle pure (virtual void putstr(char *sy) = 0;) et tu n'appelles pas cette méthode. Ca signifie que les enfants de Ctestdll seront obligés d'implémenter cette fonction comme tu le fais avec Ctestdll2 mais que Ctestdll ne sera pas instanciable et que tu ne pourras pas appeler sa fonction putstr. |
Virtual void putstr(char *sy)=0; marche pas, donne la même chose :
|