RE: [ROOT] loading a shared library but not being able to use the classes init

From: Armin Reichold (a.reichold1@physics.ox.ac.uk)
Date: Fri Jun 15 2001 - 15:44:11 MEST


Hi Nick,
thanks for your attempt to help but your solution does not work.
I can load the dll with either .L or gSystem->Load but the class is never
available after loading.
I suspect this to be a windows speciality but I depend on running this code
in windows, there is no way I can move away from this platform due to
external constraints.

cheers Armin

*************************************************
* Dr. Armin Reichold            |  private:     *
* Research Officer              |  17 Frys Hill *
* University of Oxford          |  Oxford       *
* Particle & Nuclear Phys. Lab. |  OX4 7GW      *
* 1 Keble Road                  |  UK           *
* Oxford OX1 3RH                                *
* UK                                            *
* Room 612                                      *
*                                               *
* Tel.  : +44-(0)1865-273358...(office)         *  
* Tel.  : +44-(0)1865-434856...(private)        *
* Mobile: +44-(0)7930-431102...(emergency only) *
* Fax.  : +44-(0)1865-273418...(office)         *
* E-Mail: a.reichold1@physics.ox.ac.uk          *
* Netmeeting: ppnt67.physics.ox.ac.uk (business)*
* ---//--- Dir. Server: webnt.physics.ox.ac.uk  *
*************************************************


-----Original Message-----
From: Nick van Eijndhoven [mailto:Nick@phys.uu.nl]
Sent: Friday, June 15, 2001 8:16 AM
To: Armin Reichold
Cc: 'Valeri Fine'; roottalk@pcroot.cern.ch
Subject: Re: [ROOT] loading a shared library but not being able to use
the classes init


Hi Armin,
Instead of .L mylibrary.dll use gSystem->Load("mylibrary").
This should load your classes correctly.

                                          Cheers,
                                           Nick.

-- 
Dr. Nick van Eijndhoven mailto:nick@phys.uu.nl http://www.phys.uu.nl/~nick
--------------------------------------------------------------------------
Org.:    Utrecht University/Nikhef, Department of Subatomic Physics
Address: P.O. Box 80.000, NL-3508 TA Utrecht, The Netherlands
Phone:   +31-30-2532331(direct) +31-30-2531492(secr.)  Fax: +31-30-2518689
NIKHEF:  +31-20-5922178(direct) +31-20-5922000(secr.)  Fax: +31-20-5925155
CERN:    +41-22-7679751(direct) +41-22-7675857(secr.)  Fax: +41-22-7679480
Offices: Buys Ballot lab. 710 (Utrecht)   N241 (Nikhef)   B23 1-020 (CERN)
--------------------------------------------------------------------------


Armin Reichold wrote:
> 
> Dear Rooter and Valerie
> I am using ROOT 3.01.05 on windows 2000.
> I have a set of classes I would like to use in root
> I generate a dictionary for them like this:
> 
> rootcint -f MyDictionary.cxx MyClass1.h ..... MyClassN.h linkdef.h
> 
> During dictionary generation I get some warnings about Datamembers being
> pointers to fundamental types and thus cint does not know their size but
> since I don't need the streamers for the classes I don't really care I
> think.
> 
> my linkdef.h looks like this:
> ====================================
> #ifdef __CINT__
> 
> #pragma ling off all globals;
> #pragma ling off all classes;
> #pragma ling off all functions;
> 
> #pragma link C++ class MyClass1;
> .....
> #pragma link C++ class MyClassN;
> 
> #endif
> ====================================
> 
> I have compiled the classes into a dll (developer studio 6) wich I load
into
> an interactive root session with .L mylibrary.dll
> I then try to use them and root complains that it does not know them like:
> class, stuct, union or type MyClass1 not defined
> Same error occurs if I try: .class MyClass1
> 
> However if I load the dll again it says:
> warning in <Add>: class MyClass1 allready in in TClassTable
> 
> Note:
> starting root I do get a funny message which says:
> Warning in <TWinNTSystem::setProgname>: wrong Program Path
> maybe that has something to do with my problems
> 
> Valerie:
> this seems to be related to one of your latest messages to roottalk about
> loading dll's under windows but I am not realy sure.
> 
> thansk for any help,
> cheers Armin
> 
> *************************************************
> * Dr. Armin Reichold            |  private:     *
> * Research Officer              |  17 Frys Hill *
> * University of Oxford          |  Oxford       *
> * Particle & Nuclear Phys. Lab. |  OX4 7GW      *
> * 1 Keble Road                  |  UK           *
> * Oxford OX1 3RH                                *
> * UK                                            *
> * Room 612                                      *
> *                                               *
> * Tel.  : +44-(0)1865-273358...(office)         *
> * Tel.  : +44-(0)1865-434856...(private)        *
> * Mobile: +44-(0)7930-431102...(emergency only) *
> * Fax.  : +44-(0)1865-273418...(office)         *
> * E-Mail: a.reichold1@physics.ox.ac.uk          *
> * Netmeeting: ppnt67.physics.ox.ac.uk (business)*
> * ---//--- Dir. Server: webnt.physics.ox.ac.uk  *
> *************************************************



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:49 MET