-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jarrett Billingsley wrote: > On Fri, Aug 21, 2009 at 11:10 AM, Dan<dan.r.stev...@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.
Yeah just use a def file. This is start of def file I used to sort out a lib for opengl, put the name you want first and what you've got second ========= ; opengl32.dll has __stdcall functions but doesn't follow the std call ; name mangling convention. so we need to sort the mess out. LIBRARY opengl32 EXETYPE NT SUBSYSTEM WINDOWS EXPORTS _glac...@8 = glAccum ========= Use the def file with implib to create a client .lib. > implib name.lib name.def http://www.digitalmars.com/ctg/implib.html - -- My enormous talent is exceeded only by my outrageous laziness. http://www.ssTk.co.uk -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iD8DBQFKjt3yT9LetA9XoXwRAg+DAKCYhzL/N5By2tJyaEUAubv6yVrwCACeK6Xh GaO49d0uEMZJJFg+Fm9C5ak= =3i5d -----END PGP SIGNATURE-----