Page 1 sur 1

Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 10:26
par Micoute
Bonjour à tous,

j'ai une procédure qui fonctionne très bien avec les anciennes versions de PB, mais que je n'arrive pas à mettre au pont avec la version 5.40.

Je fais appel à vos bonnes volontés et à vos bons conseils pour me tirer de ce mauvais pas et je vous en remercie beaucoup.

Code : Tout sélectionner

Procedure.s Api_FormatCurrency(Valeur.f); - retourne valeur au format monétaire
    Protected Resultat.s=Space(10)
  If #PB_Compiler_Version <= 531
    GetCurrencyFormat_(#LOCALE_USER_DEFAULT,0,StrF(Valeur),0,Resultat,Len(Resultat))
    ProcedureReturn Resultat
  ElseIf #PB_Compiler_Version > 531
    Protected *Resultat=@Resultat, *Valeur = @Valeur
    Debug PeekF(*Valeur)
    Debug PeekF(*Resultat)
    Debug Resultat
    GetCurrencyFormat_(#LOCALE_USER_DEFAULT,0,@*Valeur,0,Resultat,Len(Resultat))
    ProcedureReturn Resultat
  EndIf
EndProcedure

Re: Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 10:53
par Fred
Tu as essayé avec la derniere beta ?

Re: Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 11:26
par Ollivier
Micoute a écrit :#LOCALE_USER_DEFAULT
Bonjour Micoute,

elle sort d'où cette constante, en fait? (Locale)

Bonne journée.

Re: Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 11:56
par microdevweb
@Micoute,

fonctionne avec Pb 5.40 B7

Code : Tout sélectionner

Procedure.s Api_FormatCurrency(Valeur.f); - retourne valeur au format monétaire
    Protected Resultat.s=Space(10)
;   If #PB_Compiler_Version <= 531
    GetCurrencyFormat_(#LOCALE_USER_DEFAULT,0,StrF(Valeur),0,Resultat,Len(Resultat))
    ProcedureReturn Resultat
;   ElseIf #PB_Compiler_Version > 531
;     Protected *Resultat=@Resultat, *Valeur = @Valeur
;     Debug PeekF(*Valeur)
;     Debug PeekF(*Resultat)
;     Debug Resultat
;     GetCurrencyFormat_(#LOCALE_USER_DEFAULT,0,@*Valeur,0,Resultat,Len(Resultat))
;     ProcedureReturn Resultat
;   EndIf
EndProcedure
Debug Api_FormatCurrency(38.8)

Re: Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 14:23
par Ollivier
Au temps pour moi Micoute: "Locale" est grammaticalement un nom (non un adjectif).

Désolé d'être à la masse avec ces APIs. D'une part, elles ne sont pas stables (c'est indiqué texto sur MSDN). D'autre part, c'est le genre de fonction qui se construit soi-même. Le cas échéant, c'est multi-plateforme...

D'où ma question tordue, encore désolé...

Re: Erreur de paramètres dans une API

Publié : sam. 26/sept./2015 17:48
par Micoute
En microdevweb a parfaitement raison, le seul problème c'est que je n'avais pas réservé assez de mémoire, car je compile en Unicode.

Désolé et content à la fois !