Bonjour,

Voila mon problème: Je fais une application Win32, un petit programme assez simple avec l'interface basique de Visual.

Donc dans le premier fichier nommé cavitation.cpp

(...)

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
20
21
int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
 	// TODO: Place code here.
	MSG msg;
	HACCEL hAccelTable;
	// Initialize global strings
	Maillage A;
	double Centrage = 0.5;
	double a1 = 0.;
	double b1 = 0.;
	double c1 = 1.;
	double a2 = 0.;
	double b2 = 0.;
	double c2 = 1.;
	int Nx = 100;
	int Ny = 100;
	double Lamont = 1.;
	double Laval = 1.;
	double Ltuyere = 1.;	
             LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_CAVITATION, szWindowClass, MAX_LOADSTRING);
(...)

Donc ici j'initialise des variables que je veux globales i.e. que j'utilise dans d'autres .cpp de mon programme.

J'associe a ce .cpp le header suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#pragma once
 
extern int Nx,Ny;
extern double a1,b1,c1;
extern double a2,b2,c2,Centrage;
extern double Lamont,Laval,Ltuyere;
extern Maillage A;
Avec comme nom cavitation.h

La commande "extern" est celle que j'ai lue dans quelques forum pour déclarer les variables globales.

Bon lors de la compilation j'obtient les messages suivant :

Cavitation error LNK2001: unresolved external symbol "class Maillage A" (?A@@3VMaillage@@A)
Et ainsi de suite pour toutes les variables.

J'ai aussi l'erreur suivante :

Cavitation error LNK2019: unresolved external symbol "public: __thiscall Maillage::Maillage(void)" (??0Maillage@@QAE@XZ) referenced in function _WinMain@16
et:

Cavitation error LNK2019: unresolved external symbol "public: virtual __thiscall Maillage::~Maillage(void)" (??1Maillage@@UAE@XZ) referenced in function _WinMain@16

J'espere ne pas alourdir en ajoutant ma definition de la classe maillage :

"Maillage.h"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma once
 
class Maillage {
public:
	Maillage(void);
	virtual ~Maillage(void);
public: 
		double **PointMaillage;
		void CreationPoint(int , int);
		void Dessin();
		void Zone1(int,int);
		void InitParam(int, int);
};
et "Maillage.cpp"

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once
#include "stdafx.h"
 
 
void Maillage::InitParam(int A,int B)
	{
		int i;
		int X,Y;
		X = 3*A;
		Y = 3*B;
		PointMaillage = new double *[X];
		for (i=0;i<X;i++)
		{
			PointMaillage[i] = new double [Y];
		}
	};
void Maillage::Zone1(int X, int Y)
	{ 
		int i,j;
		for (i=0;i<X;i++)
		{
			for (j=0;j<Y;j++)
			{
				PointMaillage[i][j]=1;
			}
		}
	};
 
void Maillage::CreationPoint(int A, int B) 
	{
 
	};
 
void Maillage::Dessin()
	{
	};
Je precise que "stdafx.h" regroupe tout les headers ...

Je suis debutant alors je vous demanderais un peu de compassion. J'espere ne pas rompre une des lois du forums en postant comme je l'ai fait.

Merci de votre compréhension.

PS: une reponse en langage simple serait appréciable.