Sockets will work perfectly OK, use AF_INET, and stick with WinSock 1. AF_UNIX is defined in winsock.h, but does not work (no surprise!).
Calling a dll may require a small XS wrapper. Make sure your C++ entry point uses __stdcall (or WINAPI) calling convention with __declspec dllexport, otherwise you will get name mangling and parameters will not be passed correctly.
C++ arrays and Perl arrays are not directly compatible, but it is not difficult to write XS to do this.