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

chtitpierre78 Messages postés 30 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 29 décembre 2008 - 3 déc. 2008 à 09:38
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 3 déc. 2008 à 11:35
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

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
3 déc. 2008 à 10:39
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.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 déc. 2008 à 11:02
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++
0
chtitpierre78 Messages postés 30 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 29 décembre 2008
3 déc. 2008 à 11:26
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 ...
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
3 déc. 2008 à 11:35
Si toto est une lib système, c'est louche !!!

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