Help unresolved external symbol [VC++]

Résolu
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 - 28 juil. 2004 à 18:16
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 - 29 juil. 2004 à 16:51
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 programme principal ds le fichier main.cpp.
dans mon main, je crée un objet de ma classe puis j'appelle trois fonctions membres de ma classe.
a priori tt va bien, et au link, la premiere fonction membre appelée passe, et les 2 autres: "unresolved external symbol "la_fonction_membre", etc"......
tous les fichiers sont dans le même répertoire, le h et le cpp sont bien inclus dans mon projet, C.cpp dans le "dossier" source, et C.h ds celui header. j'ai bien inclu mon h dans mes 2 cpp, jai bien fait mon using namespace pour mon namespace, je vois pas d'ou viens le probleme, la je bloque. je vois pas d'ou peux venir le probleme....
merci d'avance pr vos reponses

6 réponses

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 juil. 2004 à 16:51
chui un abruti.....
cest mes inline ki sont ds mon cpp, cest tt......
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
28 juil. 2004 à 18:55
Mais ton code ici pour voir les erreurs.

Shell
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
28 juil. 2004 à 19:32
bon bah voila les parties de la sources qui peuvent etre interessantes:

fichier de classe .h
--------------------------------------------------------

#if!defined __CDEV_H__
#define __CDEV_H__

#include <windows.h>

namespace nsDEV
{
class CDev
{
private :
DWORD m_Bits;
DWORD m_Height;
DWORD m_Width;

public :
CDev (void);
CDev (DWORD Width, DWORD Height, DWORD Bits);
void Modif (DWORD Width, DWORD Height, DWORD Bits);
DWORD GetWidth (void) const;
DWORD GetHeight (void) const;
DWORD GetBits (void) const;

};//class CDev

}//nsDEV

#endif //__CDEV_H__

--------------------------------
fichier de classe .cpp
--------------------------------

#define CDEV nsDEV::CDev

#include "CDev.h"

CDEV::CDev (void)
: m_Width (0), m_Height (0), m_Bits (0){}

CDEV::CDev (DWORD Width, DWORD Height, DWORD Bits)
: m_Width (Width), m_Height (Height), m_Bits (Bits) {}

void CDEV::Modif (DWORD Width, DWORD Height, DWORD Bits)
{
m_Width = Width;
m_Height = Height;
m_Bits = Bits;

}//Modif

inline
DWORD CDEV::GetWidth (void) const
{
return m_Width;

}//GetWidth

inline
DWORD CDEV::GetHeight (void) const
{
return m_Height;

}//GetHeight

DWORD CDEV::GetBits (void) const
{
return m_Bits;

}//GetBits

#undef CDEV

------------------------------
fichier principal: (la jabrege, je laisse juste ce qui peut avoir un impact)
------------------------------

#include "resource.h"
#include <windows.h>
#include <vector>
#include "CDev.h"

using namespace std;
using namespace nsDEV;

LRESULT CALLBACK WndProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{
DEVMODE mode;
vector <CDev> VCDev;

EnumDisplaySettings (NULL,0, &mode);
VCDev.push_back(CDev (mode.dmPelsWidth,
mode.dmPelsHeight,
mode.dmBitsPerPel));
for (int j 1, k 0; EnumDisplaySettings (NULL, j, &mode); ++j)
{
if (mode.dmBitsPerPel != VCDev [k].GetBits()
&& mode.dmPelsWidth != VCDev [k].GetWidth()
&& mode.dmPelsHeight != VCDev [k].GetHeight())
{
VCDev.push_back (CDev (mode.dmPelsWidth,
mode.dmPelsHeight,
mode.dmBitsPerPel));
++k;
}

}

}

------------------------------
voila, et les erreurs:
------------------------------

resolution.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall nsDEV::CDev::GetHeight(void)const " (?GetHeight@CDev@nsDEV@@QBEKXZ)
resolution.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall nsDEV::CDev::GetWidth(void)const " (?GetWidth@CDev@nsDEV@@QBEKXZ)
Debug/resolution.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

resolution.exe - 3 error(s), 0 warning(s)
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
29 juil. 2004 à 00:55
enleve tout ton namespace, solution radicale mais qui va marcher...
a+ ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 juil. 2004 à 13:43
non ca marche pas.....sniff.
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
29 juil. 2004 à 16:38
sniff, personne pr me repondre? ca commence a m'emmerder grave ce truc. et jai pas tellement envie de mettre ma classe ds le main.cpp, jaimerais savoir d'ou viens mon erreur. jai beau chercher encore je trouve pas. et sans ca ke ca compile, je sais pas vraiment ou j'en suis j'ai du mal a avancer.
merci d'avance pr vos futures reponses
0
Rejoignez-nous