This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Exporting functions from .exe modules?


Just how does one export a function from an executable module using
GNU?  There are procedures for marking DLLs using dlltool, but can
you mark an .exe file similarly?  The following program ought to work
when the program ExportLib.exe is compiled using a non-GNU compiler
with the `_export' keyword in the header of each of the exported
functions.


#include <windows.h>

int main (int argc, char **argv)
{
  void (*libcall) (void);
  HINSTANCE libhandle;
  int index;
  char cmdbuf[256];
	libhandle = LoadLibrary("ExportLib.exe");
	printf("libhandle = %d\n", (unsigned)libhandle);
	for (index = 1 ; index <= 3 ; index++)
	 {
	  sprintf(cmdbuf, "export%d", index);
	  libcall = GetProcAddress(libhandle, cmdbuf);
	  printf("Calling export%d with address %p\n", index, (void *)libcall);
	  if ((FARPROC)libcall != (FARPROC)NULL) libcall();
	 };
	FreeLibrary(libhandle);
}
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]