Using foreign SW with ROOT

Hi,

I would like to use ROOT for displaying data from a measurement device.
In one case, I have two .lib files which can be excellently used with other (Visual C/Gnu C) software, and now the data communication part is completed. Even, I guess that I can modify the sample makefile correspondingly, to cooperate with these libraries. Is this also possible with CINT?

Essentially the same is the problem in another case. Here I have an RS232 communication packet, which has its own structure and I
do not need to interpret/debug it with CINT, only to use it. Maybe I missed in the point in the docs, how to do it.

Could you please give me a hint? (example code or docs)

Thanks

Janos

This is probably the best course of action.

What do you meant?

Philippe.

If I understrood your question properly, what you want is a call to

gROOT->ProcessLine(const char *C++statement );

(see: root.cern.ch/root/htmldoc/TROOT. … rocessLine )
where the string C++statement is created by your software.
or its equivalent.
You can do that with a little effort from any language (Fortran. C / assembler)

[quote=“fine”]If I understrood your question properly, what you want is a call to

gROOT->ProcessLine(const char *C++statement );

(see: root.cern.ch/root/htmldoc/TROOT. … rocessLine )
where the string C++statement is created by your software.
or its equivalent.
You can do that with a little effort from any language (Fortran. C / assembler)[/quote]

Well, actually I meant :
what is the best practice to use a 3-rd party library with ROOT?
(I have the source of the library, put in a structured subdirectory)
Shall I write a wrapper class?
How can I configure CINT to find references to entries in that library?
Shall I make a .lib or can I use the source?

Thanks

Janos

[quote="jvegh
what is the best practice to use a 3-rd party library with ROOT?
(I have the source of the library, put in a structured subdirectory)
Shall I write a wrapper class?
How can I configure CINT to find references to entries in that library?
Shall I make a .lib or can I use the source?
[/quote]

It is hard to say. The best practice depends of your goals and tasks.

The main question Are you going to use (communicate) YOUR library / code via CINT interpreter or you merely will call the suboruinte from the library from another code directly.

The former requires the CINT dictionary to be created and compiled, the later has no ROOT specific. Just use your class library the way one uses ANY C++ class library, namely

  1. At compile time, you have to provide the include header files
  2. At link time, you have to provide the “expoort” library" *.lib
  3. At run-time, you have to provide DLL’s *.DLL

If you want the CINT facility then you have to add one extra step namely you should provide the CINT dictionary source code followed by 3 steps mentions above.

Well, I have a ready-made library (or more precisely, just a set of sources), which is even not organized into .lib. What I really wanted is just to call some routines from this set. Can I call the objects instead of building a library?
Is this task (i.e. using 3-rd party SW) easier in the QT port?

I used to the comfort MS VC provides and it is better for me than CINT. Is there some information available around, how can I use the visual development environment, i.e. how to set up a .dsp file? I could configure all libraries with the exception of the main file. Something like main or WinMain is always missing. How can I link it?

Is it possible to make “real” executables, i.e. which consist of one file (or even some libraries) and can be run without installing ROOT?

Thanks

Janos