compatibilité Programmes Windows-Linux-MacOS

Sujets variés concernant le développement en PureBasic
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

compatibilité Programmes Windows-Linux-MacOS

Message 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
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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.
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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.
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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.
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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).
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: compatibilité Programmes Windows-Linux-MacOS

Message 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
Répondre