Questo è il codice:
Code: Select all | Expand
#include "Fivewin.ch"#include "Richedit.ch"FUNCTION MAIN() LOCAL hDll := LOADLIBRARY( "RICHED20.DLL" ) LOCAL oDlg LOCAL oRich, cVar := "" DEFINE DIALOG oDlg FROM 0, 0 TO 15, 40 TITLE "Test Richedit" @ 0, 0 RICHEDIT oRich VAR cVar SIZE 160,80 OF oDlg @ 5, 11 BUTTON "&Second" ACTION DIALOG_2() ACTIVATE DIALOG oDlg CENTER FREELIBRARY( hDll )RETURN NILSTATIC FUNCTION DIALOG_2() LOCAL oDlg LOCAL oRich, cVar := "" DEFINE DIALOG oDlg FROM 30, 100 TO 45, 140 TITLE "Second" @ 0, 0 RICHEDIT oRich VAR cVar SIZE 160,80 OF oDlg @ 5, 11 BUTTON "&First" ACTION oDlg:End() ACTIVATE DIALOG oDlgRETURN NIL
Se chiudo il programma senza richiamare la seconda dialog è tutto ok.
Se richiamo la seconda dialog, torno sulla prima e chiudo il programma ottengo questo errore:
Harbour Exception
Called from RESETOLEUNINIT(0)
Ho l'impressione che, quando chiudo la seconda dialog, la funzione RESetOleUnInit( ::hWnd ) del metodo SetOleInit() effettui il reset anche dell'oggetto della prima dialog.
Potete aiutarmi?
Grazie.
Pier Luigi