[MSVC2005] LNK2001 : unresolved extern symbol __imp__GetMessage|DefWindowProc|..

Résolu
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 9 juin 2009 à 14:02
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 10 juin 2009 à 16:29
Bonjour,

Je me mets doucement à Visual C++ 2005 Express sous la torture après 1 an passé sous QtCreator.
Je dois compiler un exemple fourni avec une Dll et j'ai une liste d'erreurs à la compilation :
Édition des liens en cours...
example.obj : error LNK2001: symbole externe non résolu __imp__DispatchMessageW@4
example.obj : error LNK2001: symbole externe non résolu __imp__DefWindowProcW@16
example.obj : error LNK2001: symbole externe non résolu __imp__GetStockObject@4
example.obj : error LNK2001: symbole externe non résolu __imp__UpdateWindow@4
example.obj : error LNK2001: symbole externe non résolu __imp__RegisterClassW@4
example.obj : error LNK2001: symbole externe non résolu __imp__MessageBoxW@16
example.obj : error LNK2001: symbole externe non résolu __imp__CreateWindowExW@48
example.obj : error LNK2001: symbole externe non résolu __imp__ShowWindow@8
example.obj : error LNK2001: symbole externe non résolu __imp__LoadIconW@8
example.obj : error LNK2001: symbole externe non résolu __imp__TranslateMessage@4
example.obj : error LNK2001: symbole externe non résolu __imp__LoadCursorW@8
example.obj : error LNK2001: symbole externe non résolu __imp__PostMessageW@16
example.obj : error LNK2001: symbole externe non résolu __imp__PostQuitMessage@4
example.obj : error LNK2001: symbole externe non résolu __imp__GetMessageW@16
MSVCRT.lib(crtexe.obj) : error LNK2001: symbole externe non résolu _main


ça me semble pas être en lien avec le programme ou ma dll mais plutôt avec le compilo. Si je ne m'abuse, ces fonctions sont de l'API Win32.
Si j'ai tout compris aussi, les MFC ne sont pas livrées avec Visual C++ 2005 express. Mon hypothèse était donc que ces erreurs seraient dues au fait qu'il n'y ait pas MFC dans MSVC2005 Express... Est-ce cela ?
Dans ce cas, j'aimerai modifier l'exemple pour ne pas utiliser MFC mais plutôt Qt ?
Ma Dll communique avec le programme par des messages systèmes USER envoyée au programme. Si je passe en Qt, la structure du programme sera-t-elle toujours la même ? WinMain/MainWndProc ...

Merci

5 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juin 2009 à 14:18
Ici MFC n'entre pas l'affaire.
Jette un oeil sur ces liens:
TUTO: http://www.cppfrance.com/code.aspx?ID=38359
DOWNLOAD: http://www.microsoft.com/express/download/

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 juin 2009 à 11:50
TEMPLATES C/C++ POUR VS 2005
http://www.cppfrance.com/code.aspx?ID=36940

De nombreuses personnes ici se servent de cela et tout va bon, lis les commentaires sous la source.

ciao...
BruNews, MVP VC++
3
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
9 juin 2009 à 23:22
Tu dirais donc que c'est parce qu'il manque un ou des link avec les "standards" de Visual C++
C'est malin de faire en sorte que ça marche pas dès le départ, ça fait très..... windowsien :):)
je rigole, c'est bon
je vais investiguer, il y effectivement une liste de librairie à inclure par défaut dans le chm que tu m'as filé
Merci BruNews, on retrouve toujours les mêmes sur ce forum, ça fait plaisir

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
10 juin 2009 à 09:51
C'était bien ça, mais petite nuance, c'est User32.Lib et non user32.lib... :/

Depuis quand Windows est sensible à la casse ????

Par contre, maintenant j'ai un

MCVSCRT.lib LNK201 : unresolved ... _main. !?!?

Je crois que c'est parce que j'ai pris un projet vide en fait au départ. Mais j'ai fait pas mal de petites modifs et j'ai pas envie de tout refaire.
Y a un moyen de mettre les options qui vont bien pour qu'il me trouve mon APIENTRY WinMain ??

En plus j'ai créé un projet Win32 pour voir, il fait exactement ce que je ne supporte pas, il me crée 10 fichiers, tu ne sais pas à quoi ça te sert et quand tu enlève pour refaire à ta sauce, ça fonctionne plus...
C'est possible de reparamétré le projet existant comme il faut ?
Merci


L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0

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

Posez votre question
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
10 juin 2009 à 16:29
Ok, en fait, c'était parce que mon projet était en mode console cette erreur de main
j'ai donc été dans les propriétés du projet linker->système->sub-système et là, il faut mettre Window(Win32) au lieu de console quelque chose comme ça.
Merci en tout cas, ça résout pas mal de problème car du coup, je peux utiliser MSVC2005 Express et ça, c'est bien, un truc gratuit sous windows qui fonctionne à part MSN, j'aurai pas cru
0