www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - link to C function whose name is a D keyword

reply Carl Sturtivant <sturtivant gmail.com> writes:
Hello,

Is there a way from D to do this, without writing a C wrapper?

e.g. I want to call a C function named 'try'.

/* C prototype */
int try(int x);

//D that doesn't work:
extern(C) int try(int x);
Jan 06 2016
parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Wednesday, 6 January 2016 at 15:41:27 UTC, Carl Sturtivant 
wrote:
 //D that doesn't work:
 extern(C) int try(int x);
Try: pragma(mangle, "try") extern(C) int try_(int x); then call it with the udnerscore in D, the linker should tie it up thanks to the pragma.
Jan 06 2016
parent Carl Sturtivant <sturtivant gmail.com> writes:
On Wednesday, 6 January 2016 at 15:42:34 UTC, Adam D. Ruppe wrote:
 On Wednesday, 6 January 2016 at 15:41:27 UTC, Carl Sturtivant 
 wrote:
 //D that doesn't work:
 extern(C) int try(int x);
Try: pragma(mangle, "try") extern(C) int try_(int x); then call it with the udnerscore in D, the linker should tie it up thanks to the pragma.
Very handy! Thank you.
Jan 06 2016