Scusa, Carlo, ho imparato dai nostri contatti passati che sei una persona molto affabile e disponibile, per cui mi permetto di dirti che non ho capito come questo potrebbe influire sul mio caso particolare.
In effetti ho alcune librerie statiche precompilate (robetta di mio pugno) che ho incluso nel progetto di Code::Blocks. Per quel che ne so, in questo caso l'IDE prende di peso il codice delle librerie stesse e lo "incolla" pari pari nell'exe finale, tanto che sia una versione per il debug quanto una versione "release". Dunque non credo sia quello il problema, così come non credo che ci siano errori significativi nelle librerie stesse, perché in caso contrario manderebbero in crash anche eseguendole tramite il debugger (o, quanto meno, genererebbero segnalazioni di errore).
Le uniche librerie dinamiche che includo sono invece quelle del sistema, tipo gdi, user32... insomma, le solite cose di Win32 sin da Windows 98. "A naso" direi che neppure quelle dovrebbero dar luogo a problemi.
Una cosa che ho omesso nel mio messaggio precedente è che ottengo degli avvertimenti ("warning"
dal compilatore che derivano dal file di intestazione 3d3types.h, che fa capo a DirectX. Gli avvertimenti sono tutti di questo tipo:
librerie/d3dtypes.h:26:0: warning: ignoring #pragma warning [-Wunknown-pragmas]
librerie/d3dtypes.h:2116:0: warning: ignoring #pragma warning [-Wunknown-pragmas]
Ora, le linee del file d3dtypes.h alle quali fanno riferimento gli avvertimenti sono queste, e non ho idea di cosa possano significare:
#pragma warning(disable:4201) // anonymous unions warning
#pragma warning(default:4201)
Da notare che uso DirectX solo per poter disporre di DirectSound nella sua versione 7, e che i comandi a detta libreria, al di là di quelli per l'inizializzazione e la dismissione (che avvengono senza problemi apparenti), li impartisco unicamente tramite IDirectSoundBuffer_Play() per brevissimi effetti sonori di pochi byte, per di più precaricati in fase di inizializzazione.
Scrivendo queste note mi sovviene che DirectX, in certe situazioni a sua completa discrezione, dealloca a tradimento i buffer che usa... potrebbe essere questo a creare i crash del programma? Tipo che io chiedo "esegui il buffer pinco pallino", ma quel buffer è stato deallocato, io non lo sottopongo a "refresh" e tutto va a rotoli? Mmm... Provo a vedere cosa riesco a capirci. Se hai suggerimenti, ti leggo senz'altro.
Per ora, grazie per il tempo che mi hai dedicato.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.