PDA

View Full Version : [C++] applicazione comportamento anomalo nella gestione messaggi in Xp, Vista(home pr


KiroYakumo
17-04-2008, 17:59
- trattasi di applicazione client/server con db server Sybase
- progetto realizzato in MinGW Developer Studio 2.05
- compilatore gcc 3.4.2
- applicazione MDI così strutturata Frame Window->Mdi Client->MDI child window->Dialog Window
- le form vengono create con CreateDialog()
- i template resouce delle form hanno queste proprietà:
DIALOGO -
xStyle WS_CHILD, WS_VISIBILE, DS_CONTROL

CONTROLLO -
xExStyle WS_CONTROLPARENT
xStyle WS_CHILD, WS_VISIBILE, WS_TABSTOP


- nella procedure di MDIChil:
- in WM_CREATE Setfocus(handle della form);
- in WM_MDIACTIVATE SetFocus(GetWindow((HWND)SendMessage(g_hMDIClient, WM_MDIGETACTIVE,0,0),GW_CHILD));

- nel loop messaggi:
if(!TranslateMDISysAccel(g_hMDIClient, &Msg) && (!IsDialogMessage(GetWindow((HWND)SendMessage(g_hMDIClient, WM_MDIGETACTIVE,0,0),GW_CHILD), &Msg))) {


Testing in win98, win 2000 nessun problema gira molto bene

Testing in Xp (problemi):
dopo che ha fatto il logon (interrogazione il db, esegue store procedure..) non apre il programma
ma da il messaggio "...si è verificato un errore.. " in ModName: ntdll.dll

Testing in Vista (problemi):
gestione messaggi (presumo) in quanto non si ha all’apertura il cursore sul primo controllo (edit), non funziona l’uso del tab per navigare tra i controlli (accedi al primo edit e premi tab il cursore sparisce e l’applicazione si blocca, mentre stranamente il Crtl+6 (passaggio tra le win) e il Ctrl+4 (chiusura win) funzionano

ho provato a impostare la compatibilità dell'eseguibile (vista), tutte le possibili opzioni che vista mette a disposizione esegui come:
1. win95 problemi al lancio
1. win98 si blocca dopo la logon
2. NT 4 accedi al programma ma si pianta se interroghi il db
3. win2000 idem nt
4. xp idem nt
5. win serv 2003 idem nt

il problema di navigazione sui controlli permane, e random l’applicazione si blocca.

cercando ho trovato questo:
"Windows Vista limita a 32 Megabytes la memoria allocabile da parte di software compilato con il compilatore GNU GCC.
In pratica le richiete malloc() sono limitate a quelle dimensioni, ridicolo! SEMPLICEMENTE RIDICOLO!

Cioe’ solo gli eseguibili compilati con un compilatore Microzozz e linkati con le API netive M$ possono allocare piu’ di 32 MB di RAM. Se si compila con GCC, il limite di memoria allocabile e’, appunto, di 32 MB….."

articolo in www.vitadiunsysadmin.net/2007/06/04/sulla-apparente-superiorita-di-microsoft-windows-vista.mht

chiedo se questo potrebbe essere la causa dei blocchi del programma, alcune volte quando delle form portano in modifica i dati, altre quando si esce dal programma, sempre quando si apre un tab control... ma non credo di arrivare ad allocare 32 mb uso new e delete per deallocare nei relativi file ...

allora ho fatto un’applicazione test (MDI) che apre solo delle form senza interrogare il db, ma se tenti di spostarti da un campo all'altro con il tab si inchioda ugualmente

come è possibile che l’applicazione abbia così tanti e diversi problemi tra xp e vista?


sapendo che Mingw32 ha il compilatore gcc per Windows che utilizza la DLL di Windows "crtdll.dll" pensavo di prova a compilare il tutto in vista ed in xp secondo della distribuzione dell'applicazione, durante l’installazione di MinGWStudio in Vista nessun problema:
compilando il file .rc esce l’errore:

gcc: installation problem, cannot exec 'cc1': No such file or directory
E:\MinGWStudio\MinGW\bin\windres.exe: no resources

provo a settare per prime le variabile d'ambiente GCC_EXEC_PREFIX con relativo path … NIENTE,

successivamente nell’IDE a settare i percorsi dal menu options di MinGW Studio tab directory, library file "C:\MinGWStudio\MinGW\libexec\gcc\mingw32\3.4.2" e resource file "C:\MinGWStudio\MinGW\bi" ... NIENTE compila solo i file cpp

che macello considerando che son già in distribuzione … se non risolvo è un gran cas….!!!!

Installando MinGW 3.4.5 in vista e compilando potrebbero sparire questi problemi?
Idem per Xp???

Suggerimenti ??????


Ulteriori prove su Xp, installato MinGWStudio (stessa configurazione), compila tutto perfettamente:
ma non si riesce ad utilizzare il Tab per i controlli si inchioda l'applicazione con errore szModName: hungApp

:mc: