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