Probléme VC++ 6.0 et VC++ 2008 Express

Signaler
Messages postés
30
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
29 décembre 2008
-
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
-
Bonjour,

Je développe régulièrement en C++ via les 2 outils cités dans le titre, c'est a dire :
- Visual C++ 6.0
- Visual C++ Express 2008

Vous me direz sans doute qu'il est débile d'avoir ces 2 outils, un seul suffirait, mais c'est là que j'ai un problème. Effectivement, lorsque je passe par exemple un code qui fonctionne sous 6.0, vers 2008 Expr. , et bien ca ne fonctionne pas, et vice versa. Pourtant, j'effectu un simple Copier/Coller de l'un a l'autre, en prenant soint de regler les options du projet de la meme maniere des 2 cotés.

Par exemple, en cem oment je developpe un petit programme pour obtenir le HANDLE d'une fenetre. Le programme marche bien sur 2008, mais sur 6.0, mes fonctions du type FindWindow, wsprint et autre ShowWindow me signal l'erreur suivant :

Error LNK2001 : unresolved exteran symbol __imp__FindWindowW@8
[...]

Malheuresement, ca probléme n'est pas particulier à ce programme, il m'arrive assez regulierement, si un programme ne fonctionne pas sous l'un, je passe à l'autre et hop ca marche. Avez vous une explication a ce probléme ? Avez vous deja eu des soucis similaires ?

Cordialement
P.KOCH

4 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Bonjour,

En effet il y a quelque différence voire ajout de méthode dans les classes de base.

Pour avoir répondu à un précédent post le "__imp__fonction@8" me rappelle que le problème était lié à :
extern "C" fonction.

D'où ma question, les 2 compilo sont bien configurés ? Il y en aurait pas 1 en C++ et l'autre en C ?

Si je ne raconte pas de bêtise, VC6 va tout compile en C++ alors que 2008 va compile les fichiers cpp en C++ et les fichiers c en C.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Les 2 compilos font C et/ou C++.

"méthode dans les classes de base", pas de cela dans l'API Windows, tout est exporté comme il se doit en C.

Je recompile sans problème sur VC++ 2008 tous mes anciens codes.

ciao...
BruNews, MVP VC++
Messages postés
30
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
29 décembre 2008

Après quelques bidouille, il s'est avéré que sous 6.0, je suis obligé d'indiquer les lib utilisées.
Du genre :

#pragma comment (lib,"toto.lib");

Là, ça fonctionne, par contre, sous 2008, j'ai pas besoins de faire ça ...
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Si toto est une lib système, c'est louche !!!

Sinon, ajoute la dans ton projet :
Setting -> Link -> general -> Object/library modules.