At 07:33 8-8-2005, you wrote:

| > Okay, I researched the topic. Of course, yes, you can export functions from an
executable
| > on linux. But freepascal doesn't seem to like it just yet.
|
| How do you intend to use the exported symbols of an stand-alone
| executable?
| As a shared library, or how else?

A shared library can call functions from the executable that it is running from. Two way
communication is very important to me.

| Perhaps Linux and Windows executable files are not too different. On

They aren't really, is what I found, after reseaching them.

| Windows the file format (MZ) is the same for DLLs and EXE files, the
| main difference is the invocation through the WinMain or LibMain entry
| points. On Linux the shared libraries may have a similar implementation,
| so that the exported symbols can be used only with shared library
| modules.

Functions can be used in executables in linux by calling the -export-dynamic or -E with the linker (LD), but it isn't working yet with freepascal. Works with GCC (also
called -rdynamic).

In windows, you can either get the handle of the exe using getmodule, and then
getprocaddress(exehandle, 'myproc')or you can just call statically
 procedure myproc; external 'myprogram.exe'; (instead of mylibrary.dll ).

I asked some GCC guys "can an elf executable export functions?" and they sort of laughed at me. They do it all the time, and they wondered why I was asking such an obvious
question. But I honestly think a lot of people don't know you can do this.

Without being able to export functions form an executable, I find it's sort of like having a client without a server. Why have a client without a server? To me, it is essential for the executable to export functions.. (this is where the true power can be squeezed out of plug-in systems - Lazarus RB Edition relies on this and would never work without
it...unless I used sockets, interprocess communication, or something similar.)

If gcc can do it also fpc can be made to do it. But for me it has no priority to add support for this to fpc. Ofcourse patches are welcome.


Peter


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to