I require an FB interface to a C function setCallBack:
Code: Select all
typedef void(myCallback)(char *, myStruct *);
void setCallBack (myCallback *);
Thanks
GWBc
Code: Select all
typedef void(myCallback)(char *, myStruct *);
void setCallBack (myCallback *);
Code: Select all
type myStruct ' a placeholder for the real struct defimition
as integer dummy
end type
type myCallback as sub cdecl (byval as zstring ptr, byval as myStruct ptr)
declare sub setCallBack cdecl (byval as myCallback)
Code: Select all
declare sub setCallBack cdecl (byval as myCallback ptr)
Code: Select all
'define the procedure
sub completion (byval as zstring ptr, byval as myStruct ptr)
end sub
'dim a var for the procedure pointer
dim completionSubPtr as myCallback = @completion
'set the callback
setCallBack(completionSubPtr)
Code: Select all
type tStruct
as integer dummy
end type
type tCallback as sub cdecl (byval msg as zstring ptr, byref myStruct as tStruct)
declare sub setCallBack cdecl (byval as tCallback)
dim shared as tCallback cb
sub setCallBack cdecl (byval callback as tCallback)
cb=callback
end sub
sub myCallback cdecl(byval msg as zstring ptr, byref myStruct as tStruct)
print "callback"
print *msg,myStruct.dummy
end sub
setCallback(@myCallback)
dim as tStruct myStruct
myStruct.dummy=42
cb("hello world",myStruct)
sleep