Hi ben321,
Well... typing "alink -h" informs me that "-dll" informs Alink that we want a .dll. Examination of the help screen in the executable of GoLink informs me that "/dll" does the same for GoLink. So far, so good.
http://forum.nasm.us/index.php?topic=1652.0and
http://forum.nasm.us/index.php?topic=1678.0appear to be examples.
http://www.nasm.us/doc/nasmdoc7.html#section-7.4.5covers the "export" directive, which is specific to the "-f obj" output format. I ASSume there's a way to get the same effect in "-f win32" and "-f win64"(?), but I don't know what it is.
Unless I'm mistaken, there are macros in this file:
http://home.myfairpoint.net/fbkotler/nagoa20120202.zipwhich will allow you to assemble a .dll with "-f bin" - without the assistance of a linker.
I believe we make static libraries with (MS's) "lib.exe" (which I seem to recall hearing just invokes "link.exe" with "certain" parameters). (or David Lindauer's "xlib.exe"?)
I've heard that we can make an import library by assembling a file with functions "import"ed and declared "extern" in "-f obj" mode. I guess that would be the only content, and I guess we'd name it ".lib". This can supposedly be used with "-f win32" objects(?).
That's all a fancy way of saying "I don't know", Ben. Wish I could help you more. If you'll detail exactly what you did, what you expected to happen, and what happened instead, someone might be able to help you narrow it down...
Best,
Frank