Questo è il codice:
- Code: Select all Expand view
#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 NIL
STATIC 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 oDlg
RETURN 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