compatibilité Programmes Windows-Linux-MacOS
compatibilité Programmes Windows-Linux-MacOS
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
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
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.
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
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
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 :
Cordialement,
GallyHC
Je bosse sur un soft Multi-OS, donc avec pas mal de problème

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
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: compatibilité Programmes Windows-Linux-MacOS
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
Elle existe aussi en ligne : http://purebasic.com/french/documentati ... cific.html
Re: compatibilité Programmes Windows-Linux-MacOS
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
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
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.
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
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.
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
Oui, les constantes #WM_* sont exclusives à Windows.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é
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
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.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).
merci
pat