Page 1 sur 1

Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 10:50
par Ar-S
Avec l'exemple de la doc j'ai une messagebox qui s'ouvre mais qui affiche H en titre et W en texte au lieu de Hello World
ça me le fait en 5.50 et 5.43

Code : Tout sélectionner

Prototype.i ProtoMessageBox(Fenetre.i, Corps$, Titre$, Options.i = 0)

  If OpenLibrary(0, "User32.dll")
   
    ; 'MsgBox' est une variable de type 'ProtoMessageBox' 
    ;
    MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxA")
    
    MsgBox(0, "Hello", "World") ; Les options peuvent être omises
  EndIf
Et vous ?

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 10:54
par falsam
Désactive le support unicode si cette option est disponible dans ta version.

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:08
par Ar-S
En effet ça marche sur la 5.43.
Et comment on résout la chose en 5.50 ?

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:15
par GallyHC
Bonjour,

Comme cela :

Code : Tout sélectionner

Prototype.i ProtoMessageBox(Fenetre.i, Corps.p-ascii, Titre.p-ascii, Options.i = 0)

  If OpenLibrary(0, "User32.dll")
   
    ; 'MsgBox' est une variable de type 'ProtoMessageBox' 
    ;
    MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxA")
    
    MsgBox(0, "Hello", "World") ; Les options peuvent être omises
  EndIf
Cordialement,
GallyHC

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:21
par Ar-S
Merci Gallyhc, ça roule :)

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:34
par kernadec
bonjour Ars
peut être mettre la variable prototype en mode global
comme j'ai été obligé de le faire dans ce code : http://www.purebasic.fr/french/viewtopi ... 59&start=3

Cordialement

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:42
par Zorro
peut se résoudre aussi comme ça en 5.50

Code : Tout sélectionner

Prototype.i ProtoMessageBox(Fenetre.i, Corps$, Titre$, Options.i = 0)
If OpenLibrary(0, "User32.dll")
		; 'MsgBox' est une variable de type 'ProtoMessageBox'		;
		MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxA")
		MsgBox(0, peeks(Ascii("Hello")), Peeks(Ascii("World"))) ; Les options peuvent être omises
EndIf 
ou comme ça :mrgreen:

Code : Tout sélectionner

Prototype.i ProtoMessageBox(Fenetre.i, Corps$, Titre$, Options.i = 0)
If OpenLibrary(0, "User32.dll")
		; 'MsgBox' est une variable de type 'ProtoMessageBox'		;
		MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxA")
		a$=peeks(Ascii("Hello"))
		b$= Peeks(Ascii("World"))
		MsgBox(0,a$,b$) ; Les options peuvent être omises
EndIf 

Re: Etrangeté avec Prototype (doc)

Publié : dim. 31/juil./2016 11:56
par falsam
Avec le version 5.50

Code : Tout sélectionner

Prototype.i ProtoMessageBoxW(Window.i, Body.s, Title.s, Flags.i = 0)

If OpenLibrary(0, "User32.dll")
  
  MsgBox.ProtoMessageBoxW = GetFunction(0, "MessageBoxW")
  
  MsgBox(0, "Hello", "World") 
EndIf