Page 1 sur 1
compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 12:28
par Patrick88
donc, que faut-il éviter dans son programme pour qu'il soit compatible avec les 3 os ?
je suppose :
- les commandes de l'api windows
- tout les appels au dll
et ces commandes existent elles en "compatible" ou "similaire" chez les autres ?
?
Pat
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 12:48
par G-Rom
y a quelques subtilités à savoir comme par exemple en ce qui concerne les sprites 3D par exemples , sous windows
ZoomSprite3D() avec des valeurs négatives n'effectue pas un miroir sur le sprite3D , ExamineKeyboardMode(#pb_keyboard_international) doit être appelé sous linux
pour pouvoir utilisé correctement le clavier , etc...
ensuite il faut respecté le format Unix sur tout les os pour les chemins de fichiers , faire attention à la case , etc...
c'est en pratiquant que l'on s'aperçoit que tel ou tel chose fonctionne correctement.
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 12:59
par Warkering
Va voir aussi dans l'aide Purebasic, il y a une liste des choses moins bien supporté sur les autres OS que Windows.
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 13:41
par GallyHC
Bonjour,
Je bosse sur un soft Multi-OS, donc avec pas mal de problème

. Déjà regarde la doc et mettre le plus possible des commandes avec "OS Supportés : Tous". Après en fonction de l'OS par moment utilise les conditions de compilation comme :
Code : Tout sélectionner
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows:
UsedVer = "Windows"
CompilerCase #PB_OS_Linux:
UsedVer = "Linux"
CompilerCase #PB_OS_MacOS:
UsedVer = "MacOS"
CompilerEndSelect
Cordialement,
GallyHC
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 13:44
par gnozal
Une liste des fonctions avec leur disponibilité selon plateforme se trouve dans l'aide (Purebasic.chm).
Elle existe aussi en ligne :
http://purebasic.com/french/documentati ... cific.html
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 17:21
par Patrick88
vu, merci
je suppose que les #WM_MOUSEMOVE et autres sont exclusif à windows
mais peux t'ont utiliser les valeurs renvoyées par le WaitWindowEvent()
512 = déplacement souris (identique à #WM_MOUSEMOVE)
513 = bouton gauche appuyé
514 = " " relaché
remarque, je n'utilise pas de fonctions "graphique" dans un OpenScreen , donc pas ExamineMouse(), ExamineKeyboard(), etc...
ah, oui, j'ai vu que la fonction WindowCallBack était spécifique windows, dur pour les rafraichissements d'écran sans cela.
pat
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 21:11
par Warkering
Je ne pense pas que les constates WM soient exclusives à Windows.
De toute façon, s'ils n'étaient pas supportées sur Linux, le fait de remplacer les constantes par des chiffres ne changerait pas grand chose, puisque les constantes sont transformé en ces chiffres lors de la compilation.
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : lun. 19/juil./2010 21:11
par Warkering
Je ne pense pas que les constates WM soient exclusives à Windows.
De toute façon, s'ils n'étaient pas supportées sur Linux, le fait de remplacer les constantes par des chiffres ne changerait pas grand chose, puisque les constantes sont transformé en ces chiffres lors de la compilation.
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : mar. 20/juil./2010 7:53
par gnozal
Patrick88 a écrit :je suppose que les #WM_MOUSEMOVE et autres sont exclusif à windows
mais peux t'ont utiliser les valeurs renvoyées par le WaitWindowEvent()
512 = déplacement souris (identique à #WM_MOUSEMOVE)
513 = bouton gauche appuyé
514 = " " relaché
Oui, les constantes #WM_* sont exclusives à Windows.
Les valeurs aussi !
Chaque OS a un API différent. If faudra tester les évènements non documentés pour chaque OS (certains en ont plus que d'autres, ou ils ne se déclenchent pas de la même façon).
Re: compatibilité Programmes Windows-Linux-MacOS
Publié : mar. 20/juil./2010 8:57
par Patrick88
gnozal a écrit :
Oui, les constantes #WM_* sont exclusives à Windows.
Les valeurs aussi !
Chaque OS a un API différent. If faudra tester les évènements non documentés pour chaque OS (certains en ont plus que d'autres, ou ils ne se déclenchent pas de la même façon).
aïe ! bon pour linux, je peux me débrouiller en l'installant sur un vieux pc, mais pour mac os... je vais essayer de me documenter.
merci
pat