Probleme link c++
Fermé
seb8334
Messages postés
4
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
10 avril 2006
-
4 avril 2006 à 11:35
Utilisateur anonyme - 6 avril 2006 à 01:22
Utilisateur anonyme - 6 avril 2006 à 01:22
A voir également:
- Probleme link c++
- Family link localisation - Télécharger - Guide protection
- Link to the past - Accueil - Guide jeu vidéo
- Telecharger link - Télécharger - Divers Communication
- Family link parents séparés - Forum Vos droits sur internet
- Family link problème limite quotidienne - Forum Mobile
3 réponses
Utilisateur anonyme
4 avril 2006 à 15:10
4 avril 2006 à 15:10
Bonjour,
pour la ligne :
#include <windows.h>
dans mon bouquin, la déclaration sous <windows.h>
doit se faire "windows.h", l'utilisation des " <> " ne se
fait qu'avec les nouvelles librairies [ C++ ] qui n'ont
pas d'extension [ .h ].
ex.:
#include <iostream>
#include "window.h"
Lupin
pour la ligne :
#include <windows.h>
dans mon bouquin, la déclaration sous <windows.h>
doit se faire "windows.h", l'utilisation des " <> " ne se
fait qu'avec les nouvelles librairies [ C++ ] qui n'ont
pas d'extension [ .h ].
ex.:
#include <iostream>
#include "window.h"
Lupin
mamiemando
Messages postés
33648
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 avril 2025
7 846
5 avril 2006 à 09:24
5 avril 2006 à 09:24
Non je ne suis pas tout à fait d'accord :
- les headers de la libc standard s'incluent avec < > et sans .hpp ou .h au bout :
- les headers contenus dans les répertoire d'include (LD_LIBRARY_PATH sous linux) s'incluent avec < > mais avec l'extenstion :
- les autres headers s'incluent avec des " " :
- si c'est un haeder C, pour que ça marche avec tout les compilateurs :
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ServProv.h(93): error C2872: 'IServiceProvider' : ambiguous symbol
Tu fais rférence à une erreur mais tu ne nous a pas donné le code correspondant (ligne 93 de c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ServProv.h). A priori tu as défini deux fois le symbole 'IServiceProvider'.
C'est assez surprenant mais c'est peut être simplement que les deux namespaces pour ces deux symboles sont différents et que par le biais des using namespace, ton compilateur est perdu. Exemple
Auquel cas tu t'en sors en supprimant :
et en manipulant :
Bonne chance
- les headers de la libc standard s'incluent avec < > et sans .hpp ou .h au bout :
#include <string> #include <iostream>
- les headers contenus dans les répertoire d'include (LD_LIBRARY_PATH sous linux) s'incluent avec < > mais avec l'extenstion :
#include <malibrairie/plop.hpp>
- les autres headers s'incluent avec des " " :
#include "tapir.hpp"
- si c'est un haeder C, pour que ça marche avec tout les compilateurs :
extern "C"{ #include <string.h> }
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ServProv.h(93): error C2872: 'IServiceProvider' : ambiguous symbol
Tu fais rférence à une erreur mais tu ne nous a pas donné le code correspondant (ligne 93 de c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ServProv.h). A priori tu as défini deux fois le symbole 'IServiceProvider'.
C'est assez surprenant mais c'est peut être simplement que les deux namespaces pour ces deux symboles sont différents et que par le biais des using namespace, ton compilateur est perdu. Exemple
namespace plop1{ class IServiceProvider{ ... }; }; namespace plop2{ class IServiceProvider{ ... }; };
Auquel cas tu t'en sors en supprimant :
using namespace plop1; using namespace plop2;
et en manipulant :
plop1::IServiceProvider plop2::IServiceProvider
Bonne chance
Utilisateur anonyme
6 avril 2006 à 01:22
6 avril 2006 à 01:22
Bonjour mamiemando,
en fait je comprends un peu ta rèticence !
mais je crois aussi que ce sont des traces du C !
voici le texte de Deitel&Deitel :
bon, c'est de la théorie, sachant que presque tous utilisent
les fonctionnalité du C en C++. Mais c'était le sens de mon
intervention.
Pour obtenir une bonne pratique de programmation par
défaut je pose le postulat suivant :
Les crochets ( < et > ) = Librairie std C++ [ !=(*.h) ]
Les guillemets = Fichier du programmeur [ !=(<>) ]
je repère ainsi facilement les librairies C, mais je ne suis pas sous Linux !
@+
Lupin
en fait je comprends un peu ta rèticence !
mais je crois aussi que ce sont des traces du C !
voici le texte de Deitel&Deitel :
17.2 Directive de précompilation #include La directive de précompilation #include, que vous trouverez partout dans ce texte, provoque l'insertion d'une copie d'un fichier spécifié à la place de la directive. Les deux formes d'include sont #include <nomfichier> #include "nomfichier" La différence entre elles réside dans l'emplacement ou le précompilateur recherche le fichier à inclure. Si le nom de fichier est entouré de crochets ( < et > ), ce qui prévaut pour les fichiers d'en-tête de la bibliothèque standard, le précompilateur recherche le fichier indiqué d'une façon qui dépend de l'implantation, normalement dans des répertoires prédéfinis. Si le nom de fichier est entouré de guillemets, le précompilateur débute la recherche dans le même que le fichier compilé, puis la poursuit de la même façon que pour les fichiers entourés entourés de crochets. Cette méthode est normalement utilisée pour inclure des fichiers d'en-tête définis par le programmeur.
bon, c'est de la théorie, sachant que presque tous utilisent
les fonctionnalité du C en C++. Mais c'était le sens de mon
intervention.
Pour obtenir une bonne pratique de programmation par
défaut je pose le postulat suivant :
Les crochets ( < et > ) = Librairie std C++ [ !=(*.h) ]
Les guillemets = Fichier du programmeur [ !=(<>) ]
je repère ainsi facilement les librairies C, mais je ne suis pas sous Linux !
@+
Lupin