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

From: Valeri Fine (fine@bnl.gov)
Date: Fri Jun 15 2001 - 17:40:54 MEST


Hello, Armin

This sounds your DLL doesn't contain any Root/CINT dictionary.
I do not think you faced any Windows feature at this point.

I am sorry I have not replied your previous message. That indicated you
failed
to create the dictionary properly. This is why you can not access your class
just you load your DLL.

 I guess one may not disregard the Rootcint "warning" you got
" 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
..."

  I hope Fons can comment that .

  Valeri

----- Original Message -----
From: "Armin Reichold" <a.reichold1@physics.ox.ac.uk>
To: "'Nick van Eijndhoven'" <Nick@phys.uu.nl>
Cc: "'Valeri Fine'" <fine@bnl.gov>; <roottalk@pcroot.cern.ch>
Sent: Friday, June 15, 2001 7:44 AM
Subject: RE: [ROOT] loading a shared library but not being able to use the
classes init


> 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