Thanks also to Paolo Invernizzi and ag0aep6g for answering with a
similar response. Using Mike's response as it has extra detail.
On Wed, 2017-06-07 at 20:00 +0200, Mike Wey via Digitalmars-d-learn
wrote:
> On 06/07/2017 06:50 PM, Russel Winder via Digitalmars-d-learn wrote:
> > So why isn't &chec
On 06/07/2017 06:50 PM, Russel Winder via Digitalmars-d-learn wrote:
So why isn't &checkFrontend a thing of type check_frontend_t*
AFAIK, you would usually translate:
typedef int (check_frontend_t*)(void *args, struct dvb_v5_fe_parms *parms);
into:
alias check_frontend_t = extern(C) int fun
On 06/07/2017 06:50 PM, Russel Winder via Digitalmars-d-learn wrote:
So why isn't &checkFrontend a thing of type check_frontend_t*?
It's a thing of type `check_frontend_t`, which is a function pointer
already. When you add an asterisk, you get a pointer to a function pointer.
On Wednesday, 7 June 2017 at 16:50:26 UTC, Russel Winder wrote:
In the constructor of an object to abstract the result of a
call to the C library code, the parameter is:
check_frontend_t* cf
You should remove the pointer here...
/Paolo
OK, so I have narrowed down my SIGSEGV problem to having no real idea
how to do C function pointers in D code.
So I have a callback function that will be called from C library code.
It currently has signature:
extern(C) int checkFrontend(void* _arguments, dvb_v5_fe_parms*
frontendParameters)