aboutsummaryrefslogtreecommitdiff
path: root/pd/src/s_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'pd/src/s_entry.c')
-rw-r--r--pd/src/s_entry.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/pd/src/s_entry.c b/pd/src/s_entry.c
index 354512e5..ad1e28fa 100644
--- a/pd/src/s_entry.c
+++ b/pd/src/s_entry.c
@@ -1,10 +1,51 @@
-/* In NT, this is all there is to pd; the rest sits in a "pdlib" dll so
+/* In MSW, this is all there is to pd; the rest sits in a "pdlib" dll so
that externs can link back to functions defined in pd. */
+#include <stdio.h>
int sys_main(int argc, char **argv);
+ /* WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler(
+ ULONG FirstHandler,
+ PVECTORED_EXCEPTION_HANDLER VectoredHandler ); */
+
+#ifdef MSW
+#if 0
+#incldue "winbase.h"
+
+LONG NTAPI VectoredExceptionHandler(void *PEXCEPTION_POINTERS)
+{
+ fprintf(stderr, "caught exception\n");
+ return(EXCEPTION_CONTINUE_SEARCH);
+}
+
+
+int main(int argc, char **argv)
+{
+ printf("Pd entry point\n");
+ AddVectoredExceptionHandler(
+ ULONG FirstHandler,
+ PVECTORED_EXCEPTION_HANDLER VectoredHandler );
+
+
+#endif
+
+#if 1
+int main(int argc, char **argv)
+{
+ __try
+ {
+ sys_main(argc, argv);
+ }
+ __finally
+ {
+ printf("caught an exception; stopping\n");
+ }
+}
+#endif
+#else /* not MSW */
int main(int argc, char **argv)
{
return (sys_main(argc, argv));
}
+#endif