}
#endif
+#if _MSC_VER >= 1400
+void my_invalid_parameter_handler(const wchar_t* expression,
+ const wchar_t* function,
+ const wchar_t* file,
+ unsigned int line,
+ uintptr_t pReserved)
+{
+# ifdef _DEBUG
+ wprintf(L"Invalid parameter detected in function %s."
+ L" File: %s Line: %d\n", function, file, line);
+ wprintf(L"Expression: %s\n", expression);
+# endif
+}
+#endif
+
int
IsWin95(void)
{
}
+#if _MSC_VER >= 1400
+# include <crtdbg.h>
+#endif
+
void
Perl_win32_init(int *argcp, char ***argvp)
{
+#if _MSC_VER >= 1400
+ _invalid_parameter_handler oldHandler, newHandler;
+ newHandler = my_invalid_parameter_handler;
+ oldHandler = _set_invalid_parameter_handler(newHandler);
+ _CrtSetReportMode(_CRT_ASSERT, 0);
+#endif
/* Disable floating point errors, Perl will trap the ones we
* care about. VC++ RTL defaults to switching these off
* already, but the Borland RTL doesn't. Since we don't
void
Perl_win32_term(void)
{
+ dTHX;
HINTS_REFCNT_TERM;
OP_REFCNT_TERM;
+ PERLIO_TERM;
MALLOC_TERM;
}
return CreateWindow("Static", "", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, 0, NULL);
}
+#if defined(__MINGW32__) && defined(__cplusplus)
+#define CAST_HWND__(x) (HWND__*)(x)
+#else
+#define CAST_HWND__(x) x
+#endif
+
void
Perl_sys_intern_init(pTHX)
{
w32_num_pseudo_children = 0;
# endif
w32_timerid = 0;
- w32_message_hwnd = (HWND__*)INVALID_HANDLE_VALUE;
+ w32_message_hwnd = CAST_HWND__(INVALID_HANDLE_VALUE);
w32_poll_count = 0;
for (i=0; i < SIG_SIZE; i++) {
w32_sighandler[i] = SIG_DFL;
dst->pseudo_id = 0;
Newxz(dst->pseudo_children, 1, pseudo_child_tab);
dst->timerid = 0;
- dst->message_hwnd = INVALID_HANDLE_VALUE;
+ dst->message_hwnd = CAST_HWND__(INVALID_HANDLE_VALUE);
dst->poll_count = 0;
Copy(src->sigtable,dst->sigtable,SIG_SIZE,Sighandler_t);
}