[BCPB5] Exception class EWin32Error met >

Pagina: 1
Acties:

  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
De complete fout melding:
Project Project1.exe raised exception class EWin32Error with message 'A Win32 API function failed'. Process stopped. Use Step or Run to continue.

Dat doe ik, dan loop hij vast in forms.hpp bij
inline __fastcall virtual ~TForm(void) { }

Deze fout melding krijg ik als ik het programm afsluit.
Dit gebeurt alleen als ik een Show() van een form heb aangeroepen. Het form wordt al gemaakt in de main van het programma. Ik heb het nu over een kleine form naast het main form. Als de Show() van dat form nooit is aangeroepen, dan gaat er niks mis.

De Show() wordt wel aangeroepen in een Thread object. Misschien dat dat het probleem is. Hoe kan ik dat oplossen?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

De VCL is niet thread safe en mag dus niet zomaar in threads gebruikt worden. Probeer het eens zonder threads.

We adore chaos because we like to restore order - M.C. Escher


  • farlane
  • Registratie: Maart 2000
  • Nu online
Normaal gesproken zou je je UI in je main loop willen afhandelen en threads starten om lange bewerkingen uit te voeren.

Communicatie tussen de threads ( Je wilt aangeven dat er een form geshowed moet worden ) kan met oa events.

( Alhoewel ik de vcl niet ken, lijkt het me dat die daar ook voorzieningen voor heeft )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
Het is al voor elkaar. Moest Synchronize gebruiken om VCL componenten in een thread aan te roepen. Synchronize zorgt ervoor dat die acties in de main thread uitgevoerd worden.

De thread verstuurd commando's naar een comport die hij uit een qeue haalt. Als er een groot commando verstuurd moet worden, dus die niet in de buffer van de comport past, wil ik een progress schermpje laten zien. Nu kan de rest van het programma gewoon commando's in de qeue zetten en er niet meer naar om kijken.