summaryrefslogtreecommitdiff
path: root/src/fl_call_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fl_call_main.c')
-rw-r--r--src/fl_call_main.c52
1 files changed, 47 insertions, 5 deletions
diff --git a/src/fl_call_main.c b/src/fl_call_main.c
index 0089f1061..9cd4b25f5 100644
--- a/src/fl_call_main.c
+++ b/src/fl_call_main.c
@@ -1,5 +1,5 @@
/*
- * "$Id: fl_call_main.c,v 1.1.2.2 1999/05/24 14:03:47 mike Exp $"
+ * "$Id: fl_call_main.c,v 1.1.2.3 1999/10/14 04:56:09 bill Exp $"
*
* Copyright 1998-1999 by Bill Spitzak and others.
*
@@ -24,17 +24,59 @@
* Please report all bugs and problems to "fltk-bugs@easysw.com".
*/
-#if defined(WIN32) && !defined(FL_DLL) && !defined(__GNUC__)
+/*
+// This WinMain() function can be overridden by an application and
+// is provided for compatibility with programs written for other
+// operating systems that conform to the ANSI standard entry point
+// "main()". This will allow you to build a WIN32 Application
+// without any special settings.
+//
+// Because of problems with the Microsoft Visual C++ header files
+// and/or compiler, you cannot have a WinMain function in a DLL.
+// I don't know why. Thus, this nifty feature is only available
+// if you link to the static library.
+//
+// Currently the debug version of this library will create a
+// console window for your application so you can put printf()
+// statements for debugging or informational purposes. Ultimately
+// we want to update this to always use the parent's console,
+// but at present we have not identified a function or API in
+// Microsoft(r) Windows(r) that allows for it.
+*/
+
+#if defined(WIN32) //&& !defined(FL_DLL)
+
+#include <windows.h>
+#include <stdio.h>
+
extern int main(int, char *[]);
extern int __argc;
extern char **__argv;
-int fl_call_main() {
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine, int nCmdShow) {
+#ifdef _DEBUG
+ // If we are using compiling in debug mode, open a console window so
+ // we can see any printf's, etc...
+ //
+ // While we can detect if the program was run from the command-line -
+ // look at the CMDLINE environment variable, it will be "WIN" for
+ // programs started from the GUI - the shell seems to run all WIN32
+ // applications in the background anyways...
+
+ AllocConsole();
+ freopen("conin$", "r", stdin);
+ freopen("conout$", "w", stdout);
+ freopen("conout$", "w", stderr);
+#endif // _DEBUG
+
+ // Run the standard main entry point function...
return main(__argc, __argv);
}
-#endif /* WIN32 && !FL_DLL && !__GNUC__ */
+
+#endif
/*
- * End of "$Id: fl_call_main.c,v 1.1.2.2 1999/05/24 14:03:47 mike Exp $".
+ * End of "$Id: fl_call_main.c,v 1.1.2.3 1999/10/14 04:56:09 bill Exp $".
*/