On Monday, 25 August 2014 at 15:09:59 UTC, Taylor Hillegeist wrote:
So i have been trying to follow the instructions on:

http://wiki.dlang.org/Win32_DLLs_in_D

but when i get to the step where i compile the dll

dmd -ofmydll.dll -L/IMPLIB mydll.d dll.d mydll.def

I get this output:
OPTLINK (R) for Win32  Release 8.00.15
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Error 180: No Match Found for Export/ENTRY - : DllGetClassObject OPTLINK : Error 180: No Match Found for Export/ENTRY - : DllCanUnloadNow OPTLINK : Error 180: No Match Found for Export/ENTRY - : DllRegisterServer OPTLINK : Error 180: No Match Found for Export/ENTRY - : DllUnregisterServer
OPTLINK : Error 81: Cannot EXPORT : DllCanUnloadNow
OPTLINK : Error 81: Cannot EXPORT : DllGetClassObject
OPTLINK : Error 81: Cannot EXPORT : DllRegisterServer
OPTLINK : Error 81: Cannot EXPORT : DllUnregisterServer
--- errorlevel 8

Not, very pretty. Do I have something not setup right? Im using the latest DMD as of 8/25/2014. 2.066.0

Any Ideas?

So, I figured it out! I used the wrong example for mydll.def.

---------------------------------------------
LIBRARY         MYDLL
DESCRIPTION     'My DLL written in D'

EXETYPE         NT
CODE            PRELOAD DISCARDABLE
DATA            WRITE

EXPORTS
                DllGetClassObject       @2
                DllCanUnloadNow         @3
                DllRegisterServer       @4
                DllUnregisterServer     @5
----------------------------------------------
The above will cause errors: even though it makes you think that it should be mydll.def it is not.

----------------------------------------------
LIBRARY "mydll.dll"
EXETYPE NT
SUBSYSTEM WINDOWS
CODE SHARED EXECUTE
DATA WRITE
----------------------------------------------
The above is the correct .def contents

Thanks all!

Reply via email to