Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Windows - GDI dà i numeri (o, più probabilmente, li do io)
Forum - Windows - GDI dà i numeri (o, più probabilmente, li do io)

Avatar
AldoBaldo (Member)
Expert


Messaggi: 344
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 12:31
Domenica, 15/10/2017
Mi succede una cosa strana...

Ho uno dei miei pasticciatissimi programmi in fase di "elaborazione", e mi ritrovo a voler caricare delle immagini con Gdiplus per mezzo di new Image(L"nomefile"). Controllo tutto il controllabile e, quando è il caso, distruggo regolarmente con delete l'oggetto Image creato.

Tutto funziona alla perfezione finché... incredibile... chiamo GetOpenFileName() o GetSaveFileName()! A quel punto sembra che GDI impazzisca. Dal task manager rilevo che le due funzioni creano una sessantina di oggetti GDI che non vengono distrutti che in minima parte, e le mie successive chiamate a new Image(L"nomefile") falliscono miseramente con GetLastStatus() che restituisce OutOfMemory (il che, francamente, mi sembra assurdo perché il task manager mi informa che sono ancora disponibili circa 1,3 GB di memoria fisica liberi).

Qualcuno qui ha idea di cosa sta succedendo? Perché ho già provato qualsiasi verifica col debugger e non trovo nessun altro errore. Dico nessuno. Sono evidentemente cieco, oppure è il sistema che fa cose strane (probabilmente perché m'è sfuggito qualche passaggio della documentazione, che pure ho letto e riletto non so quante volte)...


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:43
Domenica, 15/10/2017
Bisognerebbe vedere il codice, ovviamente postando nella sezione corretta.

Così ci vuole la sfera di cristallo ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 344
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 13:12
Domenica, 15/10/2017
Va bene, anche se è un po' ampio.
A proposito della sezione corretta... il codice è in C "imbastardito" con un po' di C++ (pochi oggetti, però), ma il quesito riguarda il modo in cui si comportano win32, GDI e GdiPlus... qual è la sezione corretta? Immaginavo fosse questa ma se è meglio chiedo sulla sezione C/C++. Che dici?

Ultima modifica effettuata da AldoBaldo il 15/10/2017 alle 13:15


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:13
Domenica, 15/10/2017
E' sicuramente C/C++ ... non è GDI+ che non funziona ma qualcosa nel tuo codice ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 344
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 14:13
Domenica, 15/10/2017
"Devio" il mio quesito su C/C++.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote