diff --git a/lib/curl_setup.h b/lib/curl_setup.h index b73dd65c5f..867f645ccd 100644 --- a/lib/curl_setup.h +++ b/lib/curl_setup.h @@ -642,11 +642,13 @@ #if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE) #define CURL_THREAD_RETURN_T DWORD +#define CURL_WIN_THREADFUNC WINAPI typedef HANDLE curl_win_thread_handle_t; #define CURL_WIN_BEGINTHREAD CreateThread #else #define CURL_THREAD_RETURN_T unsigned int #ifdef _WIN32 +#define CURL_WIN_THREADFUNC __stdcall typedef uintptr_t curl_win_thread_handle_t; #define CURL_WIN_BEGINTHREAD _beginthreadex #endif /* _WIN32 */ diff --git a/lib/curl_threads.h b/lib/curl_threads.h index 8748cf8b2d..b17a789dd1 100644 --- a/lib/curl_threads.h +++ b/lib/curl_threads.h @@ -35,7 +35,7 @@ # define Curl_mutex_release(m) pthread_mutex_unlock(m) # define Curl_mutex_destroy(m) pthread_mutex_destroy(m) #elif defined(USE_THREADS_WIN32) -# define CURL_STDCALL __stdcall +# define CURL_STDCALL CURL_WIN_THREADFUNC # define curl_mutex_t CRITICAL_SECTION # define curl_thread_t HANDLE # define curl_thread_t_null (HANDLE)0 diff --git a/tests/libtest/lib3026.c b/tests/libtest/lib3026.c index 92d637aa7c..8c36de3dd0 100644 --- a/tests/libtest/lib3026.c +++ b/tests/libtest/lib3026.c @@ -27,7 +27,7 @@ #ifdef _WIN32 #include -static CURL_THREAD_RETURN_T __stdcall t3026_run_thread(void *ptr) +static CURL_THREAD_RETURN_T CURL_WIN_THREADFUNC t3026_run_thread(void *ptr) { CURLcode *result = ptr; diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index a16f032e04..5e57b193e9 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -413,7 +413,8 @@ struct select_ws_wait_data { HANDLE abort; /* internal event to abort waiting threads */ }; #include -static unsigned int WINAPI select_ws_wait_thread(void *lpParameter) +static +unsigned int CURL_WIN_THREADFUNC select_ws_wait_thread(void *lpParameter) { struct select_ws_wait_data *data; HANDLE signal, handle, handles[2]; diff --git a/tests/server/util.c b/tests/server/util.c index 44425f03e4..2ec5dae624 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -488,7 +488,8 @@ static LRESULT CALLBACK main_window_proc(HWND hwnd, UINT uMsg, /* Window message queue loop for hidden main window, details see above. */ #include -static CURL_THREAD_RETURN_T WINAPI main_window_loop(void *lpParameter) +static +CURL_THREAD_RETURN_T CURL_WIN_THREADFUNC main_window_loop(void *lpParameter) { WNDCLASS wc; BOOL ret;