... secondo me è un problema di risorse/compilatore e/o struttura, non sò spiegare come e perchè, ma ho fatto varie prove e disassemblato il programma (che è in fase inziale) ed è così composto:
1) in sostanza per adesso ho una logon che ad utente riconosciuto ritorna un int (se 1 si accede al programma); è su proprio file sorgente in modo da essere utilizzata anche per altri programmi richiamando la sola funzione login(); il sorgente è così composto:
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include "login_resource.h" // risorse del dialogo per logon
#include "dlgclose.h" // prototipo di funzione x chiusura logon
#include "leggitext.h" // prototipo di funzione per acquisire i valori digitati nella logon
// funzione per processare i WM_COMMAND
// funzione della dialogo procedure
// funzione chiamata api dialogoParam
2) nella WinMain:
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "logon.h" // prototipo di funzione logon
#include "menu.h" // risorse del menu della window frame
// definizione della costante per la Window Class
// procedura per la Finestra
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
...
...
return 0;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) {
int RvLogin;
RvLogin = Login(); // chiamata della funzione logon
if (RvLogin == 1) {
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
//Registrazione della Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW-1);
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAINMENU); /// QUI
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&wc);
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, g_szClassName, "Ildebrandino", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 800, 500, NULL, NULL, hInst, NULL); //creazione finestra
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// ciclo dei messaggi
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
return 0;
}
..pensando fosse un problema di compilazione ho compilato singolarmente ogni modulo in modo manuale, sia affidandosi a MinGw il menu non appare comunque;
in fase di compilazione e linkaggio delle risorse queste sono individuate (perchè cambiando identificativo nella define il compilatore ti avverte), ma in runtime del programma
non c'è manco l'ombra.
.. in debug ovviamente nessun problema (anche perchè la finestra appare ...)
... disassemblando il programma ho staccato la parte relativa alla logon, così facendo il menu appare nella finestra, altrimenti no ... ma come è possibile;
dov'è l'inghippo, dove sbaglio ... non si gestiscono le risorse così come le ho utilizzate io? è anche assurdo fare un unico file di risorse, altrimenti addio modularità.
è 4 giorni che ci impazzisco e "smoccolo" ... non sò che altro controllare e se non risolvo non posso continuare ... aiuto!!