begin process at 2012 05 30 08:09:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Unresolved external symbol


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Unresolved external symbol

mercredi 31 août 2005 à 22:52:14 | Unresolved external symbol

neodelphi

Membre Club
Bonsoir, c'est encore moi et mes problèmes de c++ !
Je vais essayer de faire cour:

J'ai une classe template dans un fichier .hpp (déclaration & code). Ce template contient une méthode virtuelle.
virtual void loadRessource(char* key);

J'ai ensuite une classe CTextureManager dont les déclarations sont dans un .h et le code dans un .cpp.
Cette classe hérite de mon template et implémente donc ma méthode virtuelle. Le problème intervient lors de la compilation:
ctexturemanager.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall CRessourcesManager<class CTexture *>::loadRessource(char *)" (?loadRessource@?$CRessourcesManager@PAVCTexture@@@@UAEXPAD@Z)

Je ne voit pas comment corriger le problème (héhé sinon je serai pas là !). J'ai peur que ce soit du au template, car j'avai déjà posé une question sur les template et l'on m'avait répondu qu'il n'était pas possible de séparer le code et les déclarations du template dans deux fichiers séparés (un .h et un .cpp). Ce problème est-il du même genre ? Ce que je cherche à faire est-il réalisable ?

Merci encore pour votre aide

neodelphi
jeudi 1 septembre 2005 à 11:51:36 | Re : Unresolved external symbol

neria

As tu surchargé la méthode dans la classe héritée ?
jeudi 1 septembre 2005 à 12:22:12 | Re : Unresolved external symbol

vecchio56

Administrateur CodeS-SourceS
Dans la classe mère surtout. Dans la classe fille tu n'est pas obligé d'implémenter une méthode virtuelle de la classe mère.

Pourquoi pour ta classe fille tu veux séparer interface et implémentation?
jeudi 1 septembre 2005 à 17:27:07 | Re : Unresolved external symbol

steve_clamage

Réponse acceptée !
Pour les templates tu peux séparer l'interface de l'implémentation, mais le fichier d'implémentation doit etre inclus dans chaque unité de traduction pour l'instenciation implicite.
On peut faire

template <...> class A
{...
};
#include "A.cpp"



jeudi 1 septembre 2005 à 17:39:26 | Re : Unresolved external symbol

vecchio56

Administrateur CodeS-SourceS
Euh... tu conseille de faire ca?
jeudi 1 septembre 2005 à 18:05:25 | Re : Unresolved external symbol

steve_clamage

Je l'ai jamais fais, mais on peut faire comme ca. Avec une autre extension que .cpp ca serait mieux.
jeudi 1 septembre 2005 à 19:41:20 | Re : Unresolved external symbol

neodelphi

Membre Club
"as tu surchargé la méthode dans la classe héritée ?"
"Dans la classe mère surtout. Dans la classe fille tu n'est pas obligé d'implémenter une méthode virtuelle de la classe mère."


Qui parle de surcharge ? si j'ai bien comprit si je met une méthode virtuelle je n'ai pas besoin d'en écrire le code dans la classe mère. Mais je doit le faire dans la classe fille nan ?

neodelphi
jeudi 1 septembre 2005 à 19:48:57 | Re : Unresolved external symbol

steve_clamage

En effet la surcharge n'a rien à voir la dedans, on parle de redéfinition de méthode virtuelle.

"si j'ai bien comprit si je met une méthode virtuelle je n'ai pas besoin d'en écrire le code dans la classe mère. Mais je doit le faire dans la classe fille nan ?"

Ca c'est si ta méthode est virtuelle pure, sinon tu es obligé de fournir un corps.


jeudi 1 septembre 2005 à 19:50:34 | Re : Unresolved external symbol

vecchio56

Administrateur CodeS-SourceS
Non c'est le contraire, sauf si c'est une méthode virtuelle pure.
jeudi 1 septembre 2005 à 20:06:22 | Re : Unresolved external symbol

neodelphi

Membre Club
Euh, ce que tu appelle fille c'est bien la classe qui hérite d'une autre classe nan ?

neodelphi

1 2 3

Cette discussion est classée dans : classe, template, unresolved, external, symbol


Répondre à ce message

Sujets en rapport avec ce message

VC++ :error LNK2001 : unresolved external symbol _glutGet@4... [ par Sisyphe ] Bonjour, je suis un p'tit nouveau en Opengl et VC++,...j'ai tenté de compiler un prog qui utilise des fonctions Opengl, et il m'indique toute une séri Problème unresolved external symbol _DirectDrawCreate@12 [ par nemmezis ] Salut à tous !J'ai crée un objet DirectDraw avec la fonction DirectDrawCreate, mais quand je compile, j'obtiens le message suivant :window.obj : error unresolved external symbol _main ?? [ par kambo ] l'analyse lexicale et syntaxique se deroule correctement, pas de warning. mais lors du building ce message apparait; LIBCD.lib(crt0.obj) : error LNK2 Pb de "unresolved external symbol" (VC++ 6.0) [ par MELISA ] Bonjour,Voici mon pb:J'ai créé une dll qui contient la signature et le code de la fonction Init.Lorsque j'appelle cette fonction dans mon projet et lo Erreur : unresolved external symbol _gtk_widget_show [ par pierru ] Bonjour.G 4 erreurs quand je compile avec Visual du type:unresolved external symbol _gtk_widget_showQue faire?Pierru Problème de unresolved external symbol dans tout mes script [ par Suisse00 ] Bonjours ! Bon dans tout les application que j'essai de compiler (dont les exemple eu même) j'ai toujours ses 2 erreur !LIBCD.lib(wincrt0.obj) : error help unresolved external symbol [VC++] [ par leprov ] salut a tous.alors voila mon probleme. j'ai créé une classe C dont les declarations sont ds C.h, et les corps des fonctions sont dans C.cpp. mon progr gzip : erreur de linkage [ par varbool ] Salut,Que signifient ces messages d'erreurs ?error LNK2001: unresolved external symbol _deflateerror LNK2001: unresolved external symbol _deflateInit2 error LNK2001: unresolved external symbol __imp__ntohs@4 [ par nonocpp ] error LNK2001: unresolved external symbol __imp__ntohs@4bjr,vous avez une idée concernant le pb?Merci unresolved symbol [ par vini456 ] Bonsoir,Lorsque je compile j'ai un unresolved external symbol : essai error LNK2001: unresolved external symbol "long __stdcall DXTraceA(char const *,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales