Oppure

Loading
07/08/09 9:18
phate89
salve a tutti... sto provando per la prima volta un programma con interfaccia grafica in c++...ho usato il c++ per poco solo con la console però un'idea del funzionamento me lo sono fatto...per creare l'interfaccia grafica sto seguendo [URL="aleax.it/TutWin32/… guida[/URL] che mi è sembrata molto completa..
seguendo il loro esempio ottengo un programma cosi:
#define STRICT 
#define WIN32_LEAN_AND_MEAN 
#include <windows.h> 
#include <string>
BOOL CALLBACK unaDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{ 
	if(uMsg==WM_CLOSE) 
	{ 
		EndDialog(hwndDlg, 0); 
		return TRUE; 
	} 
	else if(uMsg==WM_COMMAND) 
	{ 
		WORD wNotifica = HIWORD(wParam); 
		WORD wId = LOWORD(wParam); 
		if(wNotifica == STN_CLICKED &&  wId == 101) 
		{ 
			HWND hStat = (HWND)lParam; 
			char buff[6]; 
			const char* pTesto; 
			SendMessage(hStat, WM_GETTEXT, 6, (LPARAM)buff); 
			if(buff[0]=='C') pTesto = "Salve"; 
			else pTesto = "Ciao!"; 
			SendMessage(hStat, WM_SETTEXT, 0, (LPARAM)pTesto); 
			return TRUE; 
		} 
	} 
	return FALSE; 
} 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { 
	DialogBoxParam(0,L"MioDialogo",0,unaDlgProc,0); return 0; 
} 


con questo che è il file dell'interfaccia grafca (MIODIALOGO.rc)
#include <windows.h> 
MioDialogo DIALOG DISCARDABLE 0, 0, 186, 92 
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 
CAPTION "Un Dialogo vuoto" 
FONT 8, "MS Sans Serif" 
BEGIN 
CONTROL "Ciao!", 101, "STATIC", SS_CENTER|WS_BORDER|SS_NOTIFY, 60, 40, 40, 10 
END 


però quando lo eseguo e clicco sul label con la scritta "Ciao!" ricevo questo errore:
Run-Time Check Failure #2 - Stack around the variable 'buff' was corrupted.
e la variabile ptesto contiene una serie di caratteri cinesi...
per fare il programma uso visual studio 2008 in un progetto win32..dove sbaglio? come posso risolvere?
aaa