Sono veramente in panne, non so proprio come gestire una zona critica: vi riespongo il mio problema in modo più dettagliato vediamo se qualcuno sa darmi una soluzione:
1. Ho sviluppato un programmino in C++ che si compone di una main e 21 functions. Una di queste function richiamata dalla main provvede a prelevare dati da internet e rielaborarli in continuo inserendo i risultati in una matrice C++.
2. A questo punto il problema è quello di visualizzare il risultato, è ho scelto come interfaccia di visualizzazione excel.
3. Il programmino C++ preleva i dati da un socket appena si accorge che il socket è pieno, a questo punto rielabora i dati è spara la matrice risultato in un foglio di excel.
4. Per fare cio sfrutto COM. In sostanza nella Main Utilizzo "CoInitialize" e "CoCreateInstance" , mentre nella function che preleva i dati in continuo e li rielabora (essa è un ciclo continuo "while" che continua sino a che non lo interrompo con ctr C) alla fine del ciclo utilizzo "GetIDsOfNames" ed "Invoke" per richiamare l'oggetto excel e i vari gradi fino al foglio di excel dove poi sparo i dati.
5. la procedura funziona nel senso che il foglio di excel continua ad aggiornarsi in continuo, ma il PROBLEMONE è che quando intervengo manualmente sul foglio di excel per esempio scrivendo su una cella , il programma si interrompe con errore, in sostanza dice: IDispatch:GetIDsOfNames("&S")Failed w/err 0x00112e7d0.
Che fare, mi è stato proposto di risolvere il problema con le sezioni critiche, ma non so proprio da dove inizziare.
HELP HELP HELP HELP![]()
![]()
![]()

Rispondi quotando