symbole non resolu au link d'une dll

symbole non resolu au link d'une dll - C++ - Programmation

Marsh Posté le 22-11-2006 à 10:37:00    


J'ai un petit problème de résolution de symbole au link avec une dll.
Je vais essayer de donner tous les éléments:
 
Je compile sous visual C++ .net 2003
 
Le symbole pour lequel j'ai un problème est un attribut (m_TypeList) static d'une classe (non template). Cet attribut est une liste (template).
Je l'ai bien définit dans le .cpp.
La compilation et le link de ma dll se passe sans problème
J’obtiens ma dll et le .lib correspondant.
 
Pour le programme qui utilise la dll, la compilation se passe bien mais au link -> unresolved symbol
?m_TypeList@vrBuiltIn@@2V?$vrRefCountList@PAVvrRuntimeClass@@@@A
C’est le seul symbole qui plante
J’ai fait un Dumpbin de mon .lib et le symbole est présent !!!
 
Bref, ca ne marche pas, ce n’est pas cool.
 
Je ne sais pas trop si c'est une option de compilation qui manque,
si c'est lié au fait que ce soit statique.
 
Certain auront peut-être vu que mon symbole contient le mot RuntimeClass.
C'est en effet inclus dans un mécanisme similaire aux CRuntimeClass qui permet a un objet d'accéder au runtime a des info de la classe.
Mon attribut maudit est la liste dans laquelle se stockent les différentes classes.
Le mécanisme veut que dans chaque cpp, il y ait une macro d'implémentation qui implémente 2-3 fonctions lié a la classe et l'ajoute a la liste
 
Donc mon autre interrogation est : le fait que l'on y accède d'un peu partout (au chargement de la dll et avant tout appel de méthode) alors qu'elle n'est instanciée que dans le runtimeClass.cpp embêterait-il C++?
 
ps: j'arrive a faire tourner sans problème le bousin sur linux et sous VC++ 6.0
 
Merci d'avance pour vos précieux conseil (parce que la je commence a être a cours d'idée)

Reply

Marsh Posté le 22-11-2006 à 10:37:00   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed