pues para que ande en ambos sistemas use solo librerías estándares y librerías portables.
con lo de estándar me refiero a que uses solo las librerías de C/C++ estándares. Con lo de portable me refiero a las librerías gráficas.
Por ejemplo DirectX solo funca en windows pero a cambio OpenGL es mucho mas portable.
Librerías gráficas portables para 2d en  C es SDL, para C++ SFML, para las 3d esta opengl que puedes combinar con SDL y SFML. Hay una también llamada Ogre3D pero realmente no se si es buena, al menos no pinta mal.
Esta claro que no todo sera compatible pero para eso esta el #ifndef linux #define /*tu código*/ #endif, luego con que ponga eso en partes que quieres rular en windows, o haces el contrario XDD
Solo son ideas.
Es que por ejemplo hay librerías que no sirven en windows y otras en linux y para eso esta el ifndef/ifdef... 
Ademas bájate alguna maquina virtual y instala win. 
Edit:
Mira ver... son infinitas las posibilidades de eso =)   
Código C++:
Ver original#define linux           //si pones linux solo funcionaran partes de código para linux si usas el difine.
#define lang 'c'     //alternar de c a cpp y contrario.  marcar esta linea como comentario alterna de código c a cpp
 
//librerias comunes
 
//c
#if lang == 'c'    // si lang no esta definido...
#include <stdio.h>
#include <stdlib.h>
 
//cpp
#else              //...sera cpp
#include <iostream>
#endif
 
//librerias para linux
#ifdef linux
//librerias para linuxaqui
#endif // linux
 
//librerias para windows
#ifdef windows
#include <winsock2.h>
#include <windows.h>
 
#endif // windows
 
 
int main () {
//código en c
#if lang == 'c'             // si lang no esta definido...
 
#else//código en cpp        // ...sera cpp
 
    std::cout << "codigo cpp" << std::endl;
    
#endif // cpp   
 
    getchar();//aqui tambien deberia alternar el metodo de pausa entre C/C++. Otro es el la función cls y clean usando lo dicho anteriormente.     return 0;
}
  
Suerte y a ver si me busca un curro en tu empresa de juegos :3