PDA

View Full Version : [C++] Errore strano e dubbi classi


monelli
12-05-2009, 15:17
Premessa sto programmando con visual studio 2008 su wince 5

Questo è l'errore:
Data Abort: Thread=974f49f0 Proc=81496e30 'Test.exe'
AKY=00002001 PC=03f81300(coredll.dll+0x00021300) RA=1c102878(Test.exe+0x000f2878) BVA=1c3e28a8 FSR=00000407
Unhandled exception at 0x03f81300 in Test.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x003e28a8.

e questo la riga a cui mi rimanda

m_pWaveInBuffer = new unsigned char[m_dwBufferSize];

Ma la riga a cui mi rimanda l'errore compilata in un altro proggetto funziona perfettamente... Non riesco a capire...

Poi su wince rispetto a win32 c'è qualche differenza nel fare:

MiaClasse *nome = new MiaClasse;
MiaClasse *nome = new MiaClasse();
MiaClasse nome;

Ci sono differenze/limitazioni ecc?

Tanks

monelli
14-05-2009, 14:25
Piccolo up e aggiornamenti...

L'errore:
Data Abort: Thread=974f49f0 Proc=81496e30 'Test.exe'
AKY=00002001 PC=03f81300(coredll.dll+0x00021300) RA=1c102878(Test.exe+0x000f2878) BVA=1c3e28a8 FSR=00000407
Unhandled exception at 0x03f81300 in Test.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x003e28a8.

Si presenta anche quando faccio una printf: adesso vi spiego.

Io creo la mia applicazione per wince, prima di far partire la grafica lancio un thread e faccio una printf e funziona, blocco il thread, carico la parte grafica dell'applicazione, sblocco il thread che esegue un'altra printf e si presenta l'errore.

Questo è quello che esegue il thread:
printf("\n ATTENDO PRESSIONE TASTO!!!\n");
EnterCriticalSection(&g_GlobalCS);
printf("\n PREMUTO TASTO: \n");

La prima printf viene eseguita prima di avviare la parte grafica, la seconda dopo che è stata caricata la parte grafica e premuto in bottone:

if (LOWORD(wParam) == IDC_BUTTON1)
{
LeaveCriticalSection(&g_GlobalCS);
}

AIUTO PERFAVORE!!!!!!!!!!! non sò più dove sbattere la testa.......

monelli
14-05-2009, 16:22
Sono arrivato alla conclusione... credo...

Una volta inizializzata la grafica, le printf e i cout << danno quell'errore su wince, io invece ero convinto dal debugger di guardarmi tranquillamente l'output.

Eliminando le varie printf in tutto il codice il programma pare ora funzionare...
:sofico: :sofico: :sofico: :sofico: :sofico: :sofico: :sofico: :sofico: :sofico: