D dll called from other lang app

Jarrett Billingsley kb3ctd2 at yahoo.com
Sun Jul 22 07:21:12 PDT 2007


"novice2" <sorry at noem.ail> wrote in message 
news:f7v5gi$2rrr$1 at digitalmars.com...
> Hello.
>
> Sorry for dumb question.
> I need to write dll (as plugin for app written on C). And i want to do it 
> with D instead of C.
> Is it possible?
> I can't imagine how garbage collect works, so i am afraid:
> can i use D dinamic arrays?
> can i use slicing?
> can i return D char[] to outside from dll?
> will GC work or i must care about memory myself?
>
> Are there any advises or general recomendations about this?
> (i already read http://www.prowiki.org/wiki4d/wiki.cgi?BestPractices/DLL, 
> and it explain me about type system only)
>
> If this already explained then give me link please.
> Thanx

Have a look at http://www.digitalmars.com/d/dll.html, especially the "DLLs 
with a C interface" section and the "Memory Allocation" section.

Probably the most important point on that list is " Retain a pointer to the 
data within the D DLL so the GC will not free it."  Basically you can return 
a char[] to the other language so long as (1) you keep a reference to that 
data inside your DLL before returning it, and (2) the other code does not 
try to free()/delete that data. 




More information about the Digitalmars-d-learn mailing list