Aussi, dans la foulée, en lisant SleepImpl.cpp je lis #include <windows.h>, j'apprends que windows.h est une librairie de windows. Je revois la page d'entrée du site sfml et je lis "SFML est multi-plateforme".
D'où ma seconde question: comment avoir cette compatibilité entre différents os si le fichier src appelle du code spécifiquement pour windows?
C'est toute l'astuce du côté multi-plateforme avec look natif d'une appli de fenêtrage ! Et ça représente beaucoup de boulot aussi. SFML appelle les fonctions natives des OS sur lesquels elle fonctionne, lors de la compilation. Elle abstrait ces fonctions avec une API cohérente qui est la même sur tous les OS.
Le seul autre choix pour faire du multi-plateforme pour une bibliothèque de fenêtrage (mais là je parle plus d'une bibli comme Qt ou WxWidgets, qui ont tous les widgets type "boutons", "barre de défilement" etc.), serait de créer
un seul look qui soit le même sur toute les plateformes (ou plusieurs thèmes de looks pourquoi pas). Mais on n'aurait pas le look natif de la plateforme sur laquelle on compile.
On pourrait à la limite tenter d'imiter, de reproduire parfaitement une fenêtre de MacOS (par exemple) avec l'apparence de ses boutons, de ses textes, de ses formulaires... Mais quand demain MacOS change de look, ou si simplement aujourd'hui l'utilisateur choisi un autre thème que celui par défaut pour son OS, on voit tout de suite que notre application n'a pas le look natif.
Donc par exemple dans le cas de la création d'une fenêtre, ou dans le cas de l'ouverture d'un socket, dans notre bibliothèque on écrit une seule classe avec son API, et selon la plateforme sur laquelle on est, la compilation appellera le fichier d'implémentation (***Impl.cpp) correspondant.
Donc le mot "multi-plateforme" ici implique que ça ne fonctionne quand même que sur les plateformes pour lesquelles un grand boulot à été fait : le travail de connaître le fonctionnement des bibliothèques natives de la plateforme et de traduire les appels de ces bibliothèques au sein de fonctions génériques.