Bonjour,

voilà j'ai un soucis, l'objet m_hDC de type HDC, il me dit lors de la compile :
1>.\Bmp.cpp(28) : error C2065: 'm_hDC' : identificateur non déclaré
Dans la fonction affichage il ne le reconnait pas donc, et le je peux pas faire comme le buffer, enfin j'ai essayé de transmettre son adresse mais ça ne fonctionne pas. Si quelqu'un a une idée ?

Merci




Form1.cpp (le CODE concerné) (ligne 10 et 36):
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
 
public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO : ajoutez ici le CODE du constructeur
			//
			m_hDC = GetDC((HWND)this->panel1->Handle.ToPointer());
		}
 
	protected:
		/// <summary>
		/// Nettoyage des ressources utilisées.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	protected: 
	private: System::Windows::Forms::Button^  button2;
	private: System::Windows::Forms::Label^  label1;
	private: System::Windows::Forms::Panel^  panel1;
 
 
	private:
		/// <summary>
		/// Variable nécessaire au concepteur.
		/// </summary>
		System::ComponentModel::Container ^components;
		HDC m_hDC;
Toujours Form1., ligne 10 :
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
 
#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 
	//******************************************************************
	const int TAILLETOT = 400000;
    unsigned char *buffer1 = new unsigned char [TAILLETOT];
	dlBmp(buffer1);
	//*******************************************************************
 
	affichage(buffer1);
 
			 }
	};
}
Bmp.h (la fonction concerné) ligne 18 :
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
 
void affichage(unsigned char *buffer1)
{
	unsigned char *buffer2 = (unsigned char *)strstr((char *)buffer1, "BM");
	buffer2 = buffer2 + 54;
 
	int hauteur = 240; // WARNING !
	int largeur = 320; // WARNING !
	int nbBits = 3; // car 24 bits = 8B pour chaque couleur RGB ce qui fait 3 octets
 
	for (int l=0; l < hauteur; l++)
	{
                for (int c=0; c < largeur; c++)
                {
                     unsigned char b = buffer2[l*largeur*nbBits +c*nbBits];
                     unsigned char g = buffer2[l*largeur*nbBits +c*nbBits +1];
                     unsigned char r = buffer2[l*largeur*nbBits +c*nbBits +2];
                     COLORREF couleur = RGB (r, g, b);
                     SetPixel(m_hDC, c, hauteur -1 - l, couleur);
                }
	}
}