> I would appreciate some advice about the following (I try to be clear > and short!): > > I am trying to dynamically link a shared library ("libplot.so" from the > package: www.gnu.org/software/plotutils ). I do this using "dlopen" and > "dlsym". Usually it works very well but this time, I do not understand > the "C" prototype in the header file "plot.h":
(don't, use unit dynlibs that wrap those) > plPlotterParams * pl_newplparams (void) > The function "pl_newplparams" is supposed create a structure (record) > and then return some "pointer" to it. The user is not supposed to access > this data directly, so there is NO reference to "plPlotterParams" al all > in the header files (plot.h)! How does the C compiler knows what > plPlotterParams is then? > It just assumes it is a pointer or it looks > into the liplot.so file directly? To me this is a mistery No idea, I assume that if it is named it must be declared somewhere. However it doesn't really matter if you don't use it, any pointer type will do > I now that dlsym will search for the procedure names in the library, but > do I have to do that for plPlotterParams as well? > > If not, then what type should I use for the return parameter: Pointer? > integer? I get an exception as soon as I call the routine. (other > routines with simple return types works well of course) I usually use a pointer to an empty record. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal