Export static data

Jarrett Billingsley jarrett.billingsley at gmail.com
Fri Aug 21 09:01:48 PDT 2009


On Fri, Aug 21, 2009 at 11:10 AM, Dan<Dan.R.Stevens at gmail.com> wrote:
> Is there a way to export static data from a DLL written in D?
>
> I'd like to write some extension DLLs for a program, but they need to have certain static data exports to be recognized. I've been able to export functions, but no data appears in the export table of the DLL.
>
> In MSVC 6 I can do it as follows:
> extern "C" __declspec(dllexport) ModDesc DescBlock = { ... };

extern(C) export ModDesc DescBlock = { ... };

>
> Another issue I had was with the name decoration. I need to be able to export an "InitProc". The closest I was able to get was "_InitProc" and "INITPROC". Is there a way to drop the leading underscore?

As far as I know, not within the language.  DMD for some reason thinks
that all Windows functions are preceded by an underscore when that is
clearly not the case.  You might be able to do something using a .def
file (linker script), but I've only had experience linking external
symbols in, not with exporting internal symbols.


More information about the Digitalmars-d-learn mailing list