Erro 9000:

Erro 9000:

Postby lailton.webmaster » Tue Jul 21, 2009 6:52 pm

Unrecoverable error 9000:

Destructors disabled! Destructor of class: 'ToleAuto' Can´t be executed.

why it ?
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby lailton.webmaster » Tue Jul 21, 2009 6:56 pm

And erro show only later close App.

thanks
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby lailton.webmaster » Wed Jul 22, 2009 4:55 am

I recompile now my project using fwh905 and xharbour 1.2.1 more continue show message
of erro when close app.

Someone can help ? thanks
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby nageswaragunupudi » Wed Jul 22, 2009 6:47 am

This was the problem in an earlier version of xharbour. I too experienced this.
You may use xharbour build provided with FWH or latest from xhabour site. This problem does not exist now.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10625
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Erro 9000:

Postby lailton.webmaster » Wed Jul 22, 2009 8:00 am

ageswaragunupudi,

i´m using last version of xharbour more continue problem.

what you make to solve it ?

thanks
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby lailton.webmaster » Wed Jul 22, 2009 4:50 pm

Someone ?
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby Antonio Linares » Wed Jul 22, 2009 6:14 pm

Try to assign nil to it:

oOleAutoObject := nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Erro 9000:

Postby lailton.webmaster » Wed Jul 22, 2009 10:14 pm

Antonio,

Im using class CActiveX and have method Release
what´s i need change ?

METHOD Release() CLASS cActiveX
//-----------------------------------------------------------------------------------------------//
If ::hSink != NIL
OleDisconnectEvents( ::hSink )
::hSink:= NIL
EndIf
If ::hObj != NIL
OleFreeDispatch( ::hObj )
::hObj:= NIL
EndIf
::aEvent:= ::aBlock:= NIL
If ::hWnd != NIL
OleWEDestroy( ::hWnd )
::hWnd := NIL
EndIf

Return NIL

in end line i do it

#include "fivewin.ch"
function main()
public oAct, ownd
define window ownd
oAct:=cActiveX():New(ProgId) // progId referente ao meu activeX

activate window ownd
oAct:release()
Release ALL
SysRefresh()

return nil

more when close app continue message Erro.

Thanks
lailton.webmaster
 
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: Erro 9000:

Postby Davide » Tue Sep 01, 2009 1:22 pm

Antonio,

Antonio Linares wrote:oOleAutoObject := nil

I've received an Error.log from a Client with just the single line:
"Destructors disabled! Destructor of class: 'TOLEAUTO' can't be executed."
No function names, lines or other info in the Error.log

I'm using FWH 9.05 and xH 1.2.1 provided with it.
Where should I put the line you mentioned above in my prg ?

Thanks,
Davide
Davide
 
Posts: 190
Joined: Tue Mar 14, 2006 1:59 am
Location: Italy

Re: Erro 9000:

Postby Antonio Linares » Tue Sep 01, 2009 5:10 pm

Davide,

Do it in your PRG where you no longer need your used OleAuto object
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Erro 9000:

Postby Davide » Wed Sep 02, 2009 2:06 am

Antonio,
Antonio Linares wrote:Do it in your PRG where you no longer need your used OleAuto object

I finally could replicate the problem here.

I have a window opened this way (not the main window):

Code: Select all  Expand view
 DEFINE WINDOW oWnd TITLE cTitle

  oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
 
  oWnd:oClient := oActiveX // To fill the entire window surface

  oActiveX:Do( "Navigate2",cUrl,,,cPostData,cType)

  ACTIVATE WINDOW oWnd MAXIMIZED VALID (oActiveX:End() , .t.)

// 02.09.09  oActiveX := nil   // Doesn't cure the problem
// 02.09.09  oActiveX:End()    // Cures the problem, but makes the browser disappear


The problem happens when the program receives a WM_CLOSE message from an external process.
If the window above is still opened, then the error.log file is created and the window doesn't close (the main program is hanged)

Adding oActiveX:=nil after the ACTIVATE doesn't cure the problem.
Adding oActiveX:End() DOES cure it (the window gets closed with the main program by the WM_CLOSE command and no error.log is generated) but this way the browser content disappears as soon as it shown, so I cannot End() the object that way.

Any idea ?

Thanks,
Davide
Davide
 
Posts: 190
Joined: Tue Mar 14, 2006 1:59 am
Location: Italy

Re: Erro 9000:

Postby Antonio Linares » Wed Sep 02, 2009 7:41 am

Davide,

Please try this change in Class TActiveX:
Code: Select all  Expand view

   METHOD Destroy() INLINE ActXEnd( ::hActiveX ), ::oOleAuto := nil, Super:Destroy()
 


alternatively try this:

oActiveX:oOleAuto := nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Erro 9000:

Postby Davide » Thu Sep 03, 2009 1:14 am

Antonio,

> METHOD Destroy() INLINE ActXEnd( ::hActiveX ), ::oOleAuto := nil, Super:Destroy()

this unfortunately doesn't work (looks like the program hangs before method Destroy() get fired).

> oActiveX:oOleAuto := nil

This DOES work, but ... (there's always a but) ... I also have a buttonbar on that window that performs some actions on the ActiveX object, and that line (obviously) breaks it.
Any other way to empty that object ONLY when the program receives a WM_CLOSE message ?

Thanks,
Davide
Davide
 
Posts: 190
Joined: Tue Mar 14, 2006 1:59 am
Location: Italy

Re: Erro 9000:

Postby Antonio Linares » Thu Sep 03, 2009 6:26 am

Davide,

> Any other way to empty that object ONLY when the program receives a WM_CLOSE message ?

Call it from the VALID clause of the window. (WM_CLOSE)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42081
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Erro 9000:

Postby Davide » Thu Sep 03, 2009 11:45 am

Antonio,
Antonio Linares wrote:Call it from the VALID clause of the window. (WM_CLOSE)

already tried. The program hangs before the VALID of that Window is evaluated (otherwise the oActiveX:End() in the VALID would already correctly work)

I've found a workaround by assigning the object to a local variable before := nil , then, in the toolbar icons I restore it in its place before performing the ACTIONS and, when finished, I assign nil again.

Still searching for a better solution in the class however (perhaps tOleAuto, not tActiveX).

Hi,
Davide
Davide
 
Posts: 190
Joined: Tue Mar 14, 2006 1:59 am
Location: Italy

Next

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: cmsoft, Google [Bot] and 54 guests