Merging MinGW changes
This commit is contained in:
@ -1,47 +1,47 @@
|
||||
/*
|
||||
* This program attempts to load expexe.exe dynamically, get the address of the
|
||||
* ExportedFromExe function, and then call it.
|
||||
*
|
||||
* This example DOES NOT WORK! I don't know exactly what can be done, but
|
||||
* it simply seems that LoadLibrary refuses to load executables.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
int (*ExportedFromExe)();
|
||||
|
||||
int main()
|
||||
{
|
||||
HINSTANCE hDll;
|
||||
int i, j, k;
|
||||
|
||||
hDll = LoadLibrary ("expexe.exe");
|
||||
if (!hDll)
|
||||
{
|
||||
printf ("Error %d loading exe.\n", GetLastError());
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if (!(ExportedFromExe = GetProcAddress (hDll, "ExportedFromExe")))
|
||||
{
|
||||
printf ("Error %d getting ExportedFromExe function.\n",
|
||||
GetLastError());
|
||||
exit (-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ExportedFromExe ();
|
||||
}
|
||||
|
||||
/* NOTE: Unlike a DLL the exe doesn't have an entry point which
|
||||
* initializes global objects and adds __do_global_dtors to
|
||||
* the atexit list. Thus it should be safe(?) to free the
|
||||
* library. Of course, this also makes it unsafe to use
|
||||
* executables at all in this manner.
|
||||
*/
|
||||
FreeLibrary (hDll);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* This program attempts to load expexe.exe dynamically, get the address of the
|
||||
* ExportedFromExe function, and then call it.
|
||||
*
|
||||
* This example DOES NOT WORK! I don't know exactly what can be done, but
|
||||
* it simply seems that LoadLibrary refuses to load executables.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
int (*ExportedFromExe)();
|
||||
|
||||
int main()
|
||||
{
|
||||
HINSTANCE hDll;
|
||||
int i, j, k;
|
||||
|
||||
hDll = LoadLibrary ("expexe.exe");
|
||||
if (!hDll)
|
||||
{
|
||||
printf ("Error %d loading exe.\n", GetLastError());
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if (!(ExportedFromExe = GetProcAddress (hDll, "ExportedFromExe")))
|
||||
{
|
||||
printf ("Error %d getting ExportedFromExe function.\n",
|
||||
GetLastError());
|
||||
exit (-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ExportedFromExe ();
|
||||
}
|
||||
|
||||
/* NOTE: Unlike a DLL the exe doesn't have an entry point which
|
||||
* initializes global objects and adds __do_global_dtors to
|
||||
* the atexit list. Thus it should be safe(?) to free the
|
||||
* library. Of course, this also makes it unsafe to use
|
||||
* executables at all in this manner.
|
||||
*/
|
||||
FreeLibrary (hDll);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user