Sven Barth wrote:
Am 11.06.2012 12:34, schrieb Mark Morgan Lloyd:
Sven Barth wrote:
Am 11.06.2012 11:38, schrieb Mark Morgan Lloyd:
I'm struggling here. I can build a trivial (empty) .so using Lazarus
1.1+2.6.0, the only necessary manual operation being to tell the project
options to remove the (Windows-specific?) -Wr option. I can load the
result at runtime, although I've not so far put significant code into
it.

As soon as use Lazarus to add a form to the project, it no longer loads.
In order to find out what's going wrong I've had to use dlerror(), i.e.
bypassing the dynlibs library since it doesn't have a function e.g.
GetLoadErrorStr(). This shows me that the low-level dlopen() is
complaining "undefined symbol: WSRegisterCustomImageList".

What do I have to manually add to the project to get this working?


Estimated guess: add unit "interfaces" to your library project file.

Thanks Sven, that does indeed fix it :-)

I was very much at the point of wanting to ask people who knew what they
were doing, rather than flail around digging myself into a deeper hole.


Well... regarding the LCL you should keep in mind that you always need the widgetset implementation and that is provided by the unit "Interfaces". So you need to include that unit in every binary (program, library) were you want to use LCL controls.

It's something I should have spotted, and probably would have done if I'd done a file-by-file comparison of the frontend (main program) and backend (shared library). But I've also been floundering through other issues over the weekend- for example whether the build leaves the .so in lib/i386-linux or copies it to the project directory, whether the path was being honoured when I was loading the library, whether I had to run ldconfig etc.- and it was time to try to eliminate unknowns by asking rather than doing.

Anyway, I'm now at the position where I can load the most-recently-created backend, and query "about" information. I'm now moving on to putting some entries in the backend's form's menu, and seeing if I can move them to the frontend.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to