I want to thank Philippe and Fons for helping out.
Now, the problem is solved.
HP
ps:
Here is the summary of the process
for the benifit of those who may
want to do the same job.
The objective is to use commercial C shared library in cint enviornment.
In this case, the library is in the form of binary shared libraries
(libeng.so and others under Sun's Solaris)
and C header files (the main one being engine.h).
No source codes are available.
We want to be able to manipulate these C functions and structures in
CINT.
Steps:
(1) Create a file called (e.g.) engLinkDef.h, in which we
tell CINT what functions and enum's that we would like to use in CINT.
------examples:-------
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C function engOpen;
#pragma link C enum mxClassID;
#endif
(2) rootcint engDict.C -c -p engine.h engLinkDef.h
I am using Root system 2.25. the output of the above command is:
Note: operator new() masked 1c
Note: operator delete() masked 1c
Then, this generates two files: engDict.C engDict.h
(3) compile engDict.C into engDict.o
(4) compile myroot.C into myroot.o
here myroot.C is:
#include "TROOT.h"
#include "TRint.h"
TROOT root("Rint","The ROOT Interactive Interface");
int main(int argc, char **argv)
{
TRint *theApp = new TRint("Rint", &argc, argv, 0, 0);
// Init Intrinsics, build all windows, and enter event loop
theApp->Run();
delete theApp;
return(0);
}
(5) Link together myroot.o and engDict.o
(one of the link flag should be -L/shared_library_path -leng ...)
(6) in the custom CINT (myroot),
we can now call those functions in the shared library.
-----------------------------
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:30 MET