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 qusta guida che mi è sembrata molto completa..
seguendo il loro esempio ottengo un programma cosi:
Codice PHP:
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <string>
BOOL CALLBACK unaDlgProc(HWND hwndDlgUINT uMsgWPARAM wParamLPARAM lParam)
{
if(
uMsg==WM_CLOSE)
{
EndDialog(hwndDlg0);
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 
charpTesto;
SendMessage(hStatWM_GETTEXT6, (LPARAM)buff);
if(
buff[0]=='C'pTesto "Salve";
else 
pTesto "Ciao!";
SendMessage(hStatWM_SETTEXT0, (LPARAM)pTesto);
return 
TRUE;
}
}
return 
FALSE;
}
int WINAPI WinMain(HINSTANCE hInstHINSTANCE hPrevInstLPSTR lpCmdLineint nCmdShow) {
DialogBoxParam(0,L"MioDialogo",0,unaDlgProc,0); return 0;

con questo che è il file dell'interfaccia grafca (MIODIALOGO.rc)
Codice PHP:
#include <windows.h>
MioDialogo DIALOG DISCARDABLE 0018692
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_NOTIFY60404010
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?