Bonsoir,

J'ai un main.cpp que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// MANAGER.cpp*: définit le point d'entrée pour l'application console.
//
#include "Interface_File.h"
 
void Init();
 
 
Interface_File *IntFile;
 
void Init()
{
	IntFile = new Interface_File();
}
 
int main(int argc)
{
	Init();
	return 0;
}
rien de très compliqué, normal je l'ai simplifié à l'extrème pour tester mon problème.

et un le fichier Interface_File.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include "Parser.h"
 
class Interface_File
{
public:
	Interface_File(void);
	~Interface_File(void);
 
	char* GetData();
	int SetData(char* source, entity e);
	void SendData(char *dest, int sessionID);
 
	Parser *parser;
 
private:
	char* data;
};
Bon je ne vous met pas le Parser.h car il inclus également d'autre .h et inutile de surcharger le sujet.

En compilant sous Fedora 8 avec g++ j'ai une erreur de référencement de Interface_File au niveau de la ligne IntFile = new Interface_File();

Sous visula studio (à la base c un projet visual), avec l'entête pré-compilé dans le main.cpp (#include "stdafx.h") tout se passe très bien.

Lorsque je regarde le stdafx.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// stdafx.h*: fichier Include pour les fichiers Include système standard,
// ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment,
// et sont rarement modifiés
//
 
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
 
 
 
// TODO*: faites référence ici aux en-têtes supplémentaires nécessaires au programme
et "targetver.h" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#pragma once
 
// Les macros suivantes définissent la plateforme minimale requise. La plateforme minimale requise
// est la version de Windows, Internet Explorer etc. qui dispose des fonctionnalités nécessaires pour exécuter 
// votre application. Les macros fonctionnent en activant toutes les fonctionnalités disponibles sur les versions de la plateforme jusqu'à la 
// version spécifiée.
 
// Modifiez les définitions suivantes si vous devez cibler une plateforme avant celles spécifiées ci-dessous.
// Reportez-vous à MSDN pour obtenir les dernières informations sur les valeurs correspondantes pour les différentes plateformes.
#ifndef _WIN32_WINNT            // Spécifie que la plateforme minimale requise est Windows Vista.
#define _WIN32_WINNT 0x0600     // Attribuez la valeur appropriée à cet élément pour cibler d'autres versions de Windows.
#endif
Je ne vois rien d'indispensable que je n'ai pas reprécisé dans mon manager.cpp !!!

Bref je suis un peu perdu, pkoi g++ m'embêtes sous Fedora 8 alors qu'il ne m'embête pas sous Visual Studio ?

Merci par avance pour votre aide.