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

[Résolu]
Signaler
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
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

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

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"
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

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"
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

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