How to use a function without their sources

Johannes Pfau nospam at example.com
Fri Jan 18 10:19:07 PST 2013


Am Fri, 18 Jan 2013 18:47:41 +0100
schrieb "nazriel" <spam at dzfl.pl>:

> lib.d:
> void foo() {
> 	printf("%s".ptr, "hi".ptr);	
> }
> 
> test.d:
> extern(C) void _D3lib3fooFZv();
> 

I think this is dangerous, there's no guarantee that extern(D) equals
extern(C).

> How to handle name 
> mangling?
> Maybe pragma(mangleOf, "") by Alex Petterson could help.

extern(D) + pragma(mangleOf) could work.

But it's probably simpler and safer to just write a .di file for that
function manually:

lib.di:
module lib;

void foo();


More information about the Digitalmars-d-learn mailing list