Erreur de paramètres dans une API

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Erreur de paramètres dans une API

Message 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
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Erreur de paramètres dans une API

Message par Fred »

Tu as essayé avec la derniere beta ?
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Erreur de paramètres dans une API

Message par Ollivier »

Micoute a écrit :#LOCALE_USER_DEFAULT
Bonjour Micoute,

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

Bonne journée.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Erreur de paramètres dans une API

Message 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)
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Erreur de paramètres dans une API

Message 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é...
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Erreur de paramètres dans une API

Message 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 !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre