It occurs to me that the "nasmx" package has macros for import and export. I ASSume that they're for use with "-f win32". At a quick glance, I don't see quite what they do. "nasmx" is quite complex - macros define or enable other macros... By the time I find the part that "does the work", I've forgotten what I wanted to know. We can delve into that, if you think it'll help...
With GoLink, you can list the .dlls where the functions are found in the command line, and GoLink will find 'em without resorting to "import". So I understand. I'm less sure what "export" does, beyond what "global" does...
Have you tried GoLink at all? If so, what happens?
If I understand the situation, your code might assemble and link alright, but when you try to use your .dll, the lack of "export" might make itself known. Does that seem right?
I wish I could help you more, but I'm a stubborn old geezer and I'm not going back to Windows. We have the source to Alink, so I can compile it to run on Linux. I can't run the output from it, but at least I can see the error messages. We don't even have that option with GoLink. I know we have Windows users. I hope one will happen along soon...
Best,
Frank