Bonjour,
lors de l'execution d'une fonction d'une dll que j'ai faite, j'obtiens l'erreur suivante :

Run-Time Check Failure #2 - Stack around the variable 'ncols' was corrupted
et cette erreur survient à la derniere ligne (sur l'accolade fermante) de la fonction suivante

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
bool EnvirDb::TreatHeader()
{
	SQLSMALLINT ncols;
	std::string sHeader;
 
	// get the column count 
	this->srRetour = SQLColAttribute(this->hStmt,0,SQL_DESC_COUNT,NULL,0,NULL,&ncols);
	if (this->srRetour != SQL_SUCCESS && this->srRetour != SQL_SUCCESS_WITH_INFO) 
	{
		return false;
	}
	sHeader = "";
 
	// run through the columns
	for (int i=0; i<ncols; i++) 
	{
		if (i != 0) 	
		{
			sHeader += (char)254;
			sHeader += (char)255;
		}
 
	        ... // j'ai enlevé tout le code ici car il ne touche pas à ncols
	}
	SendMessage(this->Onglet, WM_USER+0, 1, (LPARAM)sHeader.c_str());
 
	return true;
}
la fonction se déroule donc comme il faut mais c'est à sa sortie que j'obtiens l'erreur.

A noter que ce meme code fonctionne correctement dans un programme C++ non dll.