Re: Cint OCX

From: Masaharu Goto (gotom@hpyiddq.jpn.hp.com)
Date: Tue May 19 1998 - 03:13:50 MEST


Torsten,

There are several forms of CINT that you can use on Windows-95/NT.

  1) CINT.exe           Standalone cint executable
  2) LIBCINT.dll        Cint core DLL linked by any process
  3) ROOT/CINT          Cint embedded in ROOT framework
  4) WILDC.dll          Cint + Tcl/Tk , uses LIBCINT.dll
  5) CINTOCX.ocx        Cint as OCX , uses LIBCINT.dll

1)-4) work fine. There are 10s of thousands of users.
I guess you try to use 5) CINTOCX.ocx which is not largely announced.

I built cintocx.ocx on VC++4.0 and VC++5.0  and tested on VisualBasic4.0. 
It works somehow. But I am not sure if I used regitimate way of event 
passing.

Cintocx.ocx uses multithreading. When you invoke a function, it send an
event to cint thread by CEvent::PulseEvent(), then Cint thread starts
evaluating the function. When it is done, cint thread sends  FireEvalDone
event back to main thread.

The problem may be 'CCintocxCtrl::FireEvalDone()' . FireXXX() should only 
be used within one thread. This case, Cint thread sends FireXXX() to 
the main thread. I should have used message passing.  If this is the 
case, quick workaround is to comment out 'origin->FireEvalDone();' 
in lib\cintocx\cintocxctl.cpp. 

To fix this problem regitimately, 
 1) Create a hidden window because cint thread is a worker thread
 2) Use message passing using ::PostMessage()

Masaharu Goto

> Hello ROOTers,
> 
> I have a problem embedding the CINT interpreter into a
> Borland Delphi application (exceptions during every function call).
> 
> Has somebody built a working app with CINT?
> 
> Regards,
> 
> Torsten.
> =======================================
> Torsten Pfuetzenreuter
> e-mail: tp@systemtechnik.tu-ilmenau.de
> Institut fuer Automatisierungs- und Systemtechnik
> Technische Universitaet Ilmenau
> PF 100565
> 98684 Ilmenau
> Deutschland
> Tel.: +49 / 3677 / 69-1467
> Fax : +49 / 3677 / 69-1434
> =======================================



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:33 MET