Débutant en PureBasic mais expérimenté en C, j'essaie d'importer une fonction C via un prototype et cela échoue avec l'erreur ci-dessous:
(merci de votre aide car je ne vois pas comment franchir cet obstacle)
Module GW
; -----------------------------------------------------------------------------
; Get the memory pointer for the server reply dynamic buffer
;
; Example:
; Define reply.i = GW::getEnv(argv, GW::#REMOTE_ADDR)
; Debug PeekS(reply.i)
; -----------------------------------------------------------------------------
PrototypeC.i Tget_env(argv.i, value.l)
Define get_env.Tget_env = #Null
Procedure.i getEnv(argv.i, value.l)
If get_env = #Null ; le pointeur est NULL?
get_env = argv ; installe la fonction
EndIf
; *** ERROR: get_env() is not a function, array, list, map or macro
Protected ret.i = get_env(argv, value)
ProcedureReturn ret
EndProcedure
EndModule
Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
Re: Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
get_env() n'est effectivement pas une procedure puisque la procedure est nomée getenv()
Code : Tout sélectionner
Procedure.i getEnv(argv.i, value.l)
Re: Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
> get_env() n'est pas une procedure puisque la procedure est nomée getenv()
Merci de votre réponse.
get_env est le pointeur de la fonction en C (voir le prototype).
GetEnv() est la fonction PureBasic qui appelle la fonction C get_env().
Merci de votre réponse.
get_env est le pointeur de la fonction en C (voir le prototype).
GetEnv() est la fonction PureBasic qui appelle la fonction C get_env().
Re: Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
Bonjour, la variable n'est pas globale , d'où l'erreur.
Re: Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
Vous avez raison, c''etait la cause du probleme.
Je pensais (benoitement) que EnableExplicit et Declare me mettaient a l'abri
de ce genre d'erreurs... mais il n'y avait pas de "undeclared" ou "undefined".
A la place, pbcompiler donne l'erreur "get_env() n'est pas une fonction" qui est
plutot etrange.
Merci en tout cas pour votre aide precieuse !
Re: Pointeur de fonction / Erreur: "get_env() n'est pas une fonction"
Code : Tout sélectionner
Merci en tout cas pour votre aide precieuse !
Code : Tout sélectionner
Path$ = GetEnvironmentVariable("PATH")
For i = 1 To CountString(Path$,";") ; StringField() index commence à 1
Debug StringField(Path$,i,";")
Next
Code : Tout sélectionner
Procedure Foo()
Debug "Foo proc call"
EndProcedure
Prototype FooProto()
Global FooProto.FooProto = @Foo()
FooProto()