40 lines
1.9 KiB
Plaintext
40 lines
1.9 KiB
Plaintext
|
This directory contains two examples of building DLLs. The exe.c and dll.c
|
||
|
files are used to build a very simple example DLL with a function that
|
||
|
adds two numbers together (and prints some text at the same time). The
|
||
|
exe.c program links to the DLL and prints the results of the function
|
||
|
call.
|
||
|
|
||
|
The C++ example "silly" is more interesting because it involves a DLL which
|
||
|
contains the code for a C++ class. The CSilly class has all of its code in
|
||
|
the sillydll.cpp source file, which is used to build the silly.dll. The
|
||
|
silly.cpp source code builds the main silly.exe executable which makes a
|
||
|
dynamic instance of the object and calls its member functions.
|
||
|
|
||
|
The C++ silly.def file was generated by doing a nm of sillydll.o after it
|
||
|
was generated and then getting the symbol names from that. Removing the
|
||
|
leading underscore produces the appropriate name to include in the EXPORTS
|
||
|
section. Notice there are a few weird functions.
|
||
|
|
||
|
Since there are now several different versions of the GNU compiler capable
|
||
|
of doing this, and they each seem to have different requirements for exports
|
||
|
for classes, it has gotten kind of messy. The silly.def file here is for
|
||
|
use with the native Mingw32 build of the EGCS version of GCC. The silly.def.old
|
||
|
file was the def file I used when I was using Jan-Jaap's Mingw32 native port
|
||
|
of GCC. The Cygnus version is different again, if I recall correctly, but I
|
||
|
don't have it hanging around anymore.
|
||
|
|
||
|
The jamfile builds all the components from the raw sources.
|
||
|
|
||
|
The expected output of exe.exe and silly.exe are in the files exe.exp
|
||
|
and silly.exp.
|
||
|
|
||
|
|
||
|
The source code in this directory is in the PUBLIC DOMAIN and can be
|
||
|
used or abused as you see fit. There is NO WARRANTY for this code,
|
||
|
including (but not limited to) implied warranties of MERCHANTABILITY
|
||
|
or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
|
||
|
|
||
|
Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
|
||
|
|