diff --git a/components/net/cpp/src/peer.cpp b/components/net/cpp/src/peer.cpp
index d7d41b0ca1b0b2c105106578385c5889587061ff..1c87fdf9e5cfc513cd00cf444ecf02a0633b4f78 100644
--- a/components/net/cpp/src/peer.cpp
+++ b/components/net/cpp/src/peer.cpp
@@ -596,13 +596,13 @@ int Peer::_send() {
 	vector<WSABUF> wsabuf(send_size);
 
 	for (int i = 0; i < send_size; i++) {
-		wsabuf[i].len = send_vec[i].iov_len;
+		wsabuf[i].len = (ULONG)send_vec[i].iov_len;
 		wsabuf[i].buf = (char*)send_vec[i].iov_base;
 		//c += ftl::net::internal::send(sock_, (char*)send_vec[i].iov_base, (int)send_vec[i].iov_len, 0);
 	}
 
-	int bytessent;
-	int c = WSASend(sock_, wsabuf.data(), send_size, &bytessent, 0, NULL, NULL);
+	DWORD bytessent;
+	int c = WSASend(sock_, wsabuf.data(), send_size, (LPDWORD)&bytessent, 0, NULL, NULL);
 #else
 	int c = ftl::net::internal::writev(sock_, send_buf_.vector(), (int)send_buf_.vector_size());
 #endif