--- a/source/adios2/helper/adiosNetwork.cpp
+++ b/source/adios2/helper/adiosNetwork.cpp
@@ -11,6 +11,7 @@
 #include "adios2/toolkit/transport/file/FileFStream.h"
 
 #include <string.h> // memcpy
+#include <cstring>
 
 #ifdef _WIN32
 
--- a/source/adios2/toolkit/transport/file/FilePOSIX.cpp
+++ b/source/adios2/toolkit/transport/file/FilePOSIX.cpp
@@ -20,7 +20,7 @@
 #include <sys/stat.h>  // open, fstat
 #include <sys/types.h> // open
 #include <thread>
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include <unistd.h> // write, close, ftruncate
 #ifndef O_BINARY
 #define O_BINARY 0
--- a/thirdparty/EVPath/EVPath/cmmulticast.c
+++ b/thirdparty/EVPath/EVPath/cmmulticast.c
@@ -185,6 +185,9 @@
 
 
 #include "qual_hostname.c"
+#ifdef _WIN32
+#include "ws2tcpip.h"
+#endif
 
 static SOCKET
 initiate_conn(CManager cm, CMtrans_services svc, transport_entry trans, attr_list attrs, mcast_conn_data_ptr mcast_conn_data, attr_list conn_attr_list, int no_more_redirect)
@@ -423,7 +426,7 @@
 libcmmulticast_LTX_writev_func(CMtrans_services svc, mcast_conn_data_ptr mcd, struct iovec *iov, int iovcnt, attr_list attrs)
 {
     SOCKET fd = mcd->output_fd;
-#ifndef _MSC_VER
+#ifndef _WIN32
     // no real equivalent on windows
     struct sockaddr_in addr = mcd->output_addr;
     struct msghdr msg;
--- a/thirdparty/EVPath/EVPath/cmsockets.c
+++ b/thirdparty/EVPath/EVPath/cmsockets.c
@@ -117,6 +117,12 @@
 #define INST_ADDRSTRLEN 50
 #endif
 
+#ifdef WSAEWOULDBLOCK
+#define EWOULDBLOCK WSAEWOULDBLOCK
+#define EAGAIN WSAEINPROGRESS
+#define EINTR WSAEINTR
+#endif
+
 static atom_t CM_FD = -1;
 static atom_t CM_THIS_CONN_PORT = -1;
 static atom_t CM_PEER_CONN_PORT = -1;
--- a/thirdparty/EVPath/EVPath/cmudp.c
+++ b/thirdparty/EVPath/EVPath/cmudp.c
@@ -207,7 +207,7 @@
 
 #include "qual_hostname.c"
 
-#ifdef _MSC_VER
+#ifdef _WIN32
 static int inet_aton(const char* cp, struct in_addr* addr)
 {
     addr->s_addr = inet_addr(cp);
--- a/thirdparty/EVPath/EVPath/dlloader.c
+++ b/thirdparty/EVPath/EVPath/dlloader.c
@@ -1,5 +1,5 @@
 #include "config.h"
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include <dlfcn.h>
 #endif
 #include <stdio.h>
--- a/thirdparty/EVPath/EVPath/dlloader.h
+++ b/thirdparty/EVPath/EVPath/dlloader.h
@@ -1,5 +1,5 @@
 
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include <dlfcn.h>
 #else
 #define RTLD_GLOBAL 0x100 /* do not hide entries in this module */
--- a/thirdparty/EVPath/EVPath/gen_interface.pl
+++ b/thirdparty/EVPath/EVPath/gen_interface.pl
@@ -636,7 +636,7 @@
 #ifdef LT_LIBPREFIX
 #include "ltdl.h"
 #else
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <windows.h>
 #define RTLD_GLOBAL 1
 #define RTLD_LAZY 2
--- a/thirdparty/EVPath/EVPath/pregen-source/revp.c
+++ b/thirdparty/EVPath/EVPath/pregen-source/revp.c
@@ -12,7 +12,7 @@
 #ifdef LT_LIBPREFIX
 #include "ltdl.h"
 #else
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <windows.h>
 #define RTLD_GLOBAL 1
 #define RTLD_LAZY 2
--- a/thirdparty/ffs/ffs/ffs/ffs_file.c
+++ b/thirdparty/ffs/ffs/ffs/ffs_file.c
@@ -7,7 +7,7 @@
 #include "string.h"
 #include "stdio.h"
 #include "stdlib.h"
-#ifndef _MSC_VER
+#ifndef _WIN32
 #include "unistd.h"
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
--- a/thirdparty/ffs/ffs/fm/fm_internal.h
+++ b/thirdparty/ffs/ffs/fm/fm_internal.h
@@ -280,7 +280,7 @@
     size_t iov_len;
 };
 #else
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include "winsock.h"
 #else
 #include <sys/socket.h>
--- a/thirdparty/ffs/ffs/fm/io_interface.h
+++ b/thirdparty/ffs/ffs/fm/io_interface.h
@@ -1,4 +1,4 @@
-#if defined(_MSC_VER) && !defined(_STRUCT_IOVEC)
+#if defined(_WIN32) && !defined(_STRUCT_IOVEC)
 #define _STRUCT_IOVEC
 struct	iovec {
     const void *iov_base;
