Salut a tous,

Je suis plutot habitue a trainer sur les forums C#, mais la j'ai un ptit projet en C++ a rendre. Mon probleme est que j'ai tres peu pratique le C++ (en fait pratiquement que le C) et jamais avec une interface graphique. Du coup sans les trucs tout fait du C# bin je galere un poil ... Ha oui et j'utilise Visual studio 2008.

1 - L'appel de ma fenetre est le suivant (que j'ai pompe sans comprendre dans un autre post)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DialogBoxParam(hInstance, (LPCTSTR)IDD_MAIN_INTERFACE, 0, dialogProc, 0);
Ceci lance par je ne sais quelle magie la fonction suivante qui ouvre ma fenetre ;-):

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
BOOL CALLBACK dialogProc(HWND handleDialog, UINT mssg, WPARAM wParam, LPARAM lParam)
{
 
	int i,j;
 
	// Open file in read mode
	std::ifstream file( "list.csv" );
    int lines = std::count(std::istreambuf_iterator<char>( file ),std::istreambuf_iterator<char>(),'\n' );
	file.clear();
	file.seekg(0);
 
	//Dynamic allocation of an array corresponding to the size of the station file
	const int nb_csv_column = 5;
	int allocated_dim = 0; // number of elements successfully allocated
	float * * CsvList= 0;
 
 
	switch(mssg)
	{
		case WM_INITDIALOG:
			{
				SetClassLong(handleDialog, GCL_HICON, (LONG)LoadIcon(0, IDI_APPLICATION));
 
				return TRUE;
			}
		case WM_COMMAND:
			switch(wParam)
			{
				case IDOK:
					break;
				case IDC_CSV_LIST:
 
					if ( file ) // test if file exists
					{
						std::string line; // read line
						//stops when error or at the end of the file
						while ( std::getline( file, line ) )
						{
							// afficher la ligne à l'écran
							std::cout << line << std::endl;
							std::clog << line << std::endl;
						}
					}
 
					// try to allocate lines x nb_csv_column;
					try
					{
						// dimension 1 : lines pointers array to float arrays
						CsvList= new float * [ lines ];
						// initialize pointers
						std::fill_n( CsvList, lines, static_cast<float*>( 0 ) );
 
						// dimension 2 : float arrays
						for ( allocated_dim = 0; allocated_dim < lines; ++allocated_dim)
						{
							CsvList[ allocated_dim ] = new float[ nb_csv_column ];
						}
					}
					catch ( const std::bad_alloc & ) // allocation error
					{
						// desallocate what was succesfully allocated
						for ( int i = 0; i < allocated_dim; ++i ) 
						{
							delete [] CsvList[ i ];
						}
						delete [] CsvList;
					}
 
					coverage(CsvList,lines, 2, -1);
					break;
				case IDC_EDIT_TXPR_alt:
					break;
				case IDCANCEL:
					EndDialog(handleDialog, 0);
					return 0;
			}
			break;
	}
	return 0;
}
En gros je lis un fichier csv contenant N lignes et je souhaite faire l'allocation dynamique d'un tableau 5 * N cases qui me permet de stocker les champs de mon fichier. Le probleme etant que je ne veux pas faire ma declaration du tableau dans le code de la fenetre, vu que cela reboucle en permanence dessus avec un resultat bien sur pas terrible terrible ;-).
Pour remedier a cela je voulais faire la declaration dans le main et allouer dynamiquement dans un des cas du switch. Mais comment passer mon tableau en argument a la fenetre ?


2 - J'ai aussi essaye de creer des boutons radio (donc fonctionnant par groupe de 2 ou 3) en suivant la faq suivante : http://cpp.developpez.com/faq/vc/?pa...adioButonHowTo
Je bloque a l'etape deux : attacher une variable sur le premier bouton du groupe ...
Voila les etapes que je suis etant donne que je n'ai pas le class wizard dans VS 2008 (qui menent de toutes parts a des erreurs):
- Creer une classe sur ma form (en double cliquant dessus puis en rentrant un nom). Cela me cree deux fichiers : MainInterface.h et MainInterface.cpp
- Passer les proprietes du projet a "Use MFC in a Shared DLL" sinon ca compile pas ...
- Apres ca je peux ajouter ma variable "button" a ma classe MAIS ...
- Je ne peux meme pas build les deux fichiers MainInterface ... en effet j'obtiens l'erreur suivante dans le .h : "Error 5 error C2065: 'IDD_MULTI_INTERFACE' : undeclared identifier"
Je suppose que c'est une histoire de config des proprietes du projet pour linker les fichiers ensemble mais j'arrive pas a trouver (d'un projet a l'autre je passe par un .lib, mais a l'interieur d'un projet que faut-il configurer ?)

3 - Question subsidiaire : Y a t il un moyen en C++ de rediriger simplement l'affichage dansl a fenetre output du debugguer ?

Thanx a lot d'avance :-)