C'est exactement ça.Envoyé par hegros
Je crois que tu fais une erreur de conception.Envoyé par Gloubie
Le C est portable au niveau source. Ca signifie que si on change de machine ou de système, il faut recomplier. Donc il suffit d'activer les bonnes définitions de macros externes (-DXXX) pour compiler ce qui doit l'être, et ce en fonction du système.
Autre solution qui parait te convenir, créer un bibliothèque par cible, et compiler/linker la bonne en fonction de la cible. Mais c'est un problème de gestion de projet (par exemple, Makefile), certainement pas de lien dynamique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #if defined (WIN32) #include <windows.h> #define msleep(ms) Sleep(ms) #elif defined (LINUX) #include <unistd.h> #define msleep(ms) uleep(ms * 1000) #else #error not defined for this platform #endif
Je ne fais pas d'erreur de conception : j'ai bien un problème de lien dynamique, très bien résumé par Hegros dans son post de 11:50.
Je développe bien en C ANSI pour des systèmes Windows, donc la plupart du temps, un code adapté à windows convient, je pourrais donc gérer le chargement "à la main" de 2 dll par des fonctions "windows", si toutefois cette solution apparaissait particulièrement moins coûteuse (ce qui n'est pas vraiment le cas, je trouve ...) mais ce n'est pas la manière de voir dans cette boite où l'on veut être indépendants de la plate-forme.
Partager