Hi frankly,
I think you may need a Windows user to help you with this. I used to know a little of it, but that memory is "paged out" at the moment.
I don't recall that "proc" actually generates much code. In 16-bit code "proc far" is an option, and that changes "ret" to "retf" and the like. I think "endp" may generate a "ret" if you haven't got one. Otherwise, I think just:
DllEntry:
will do it. The parameters and sizes are (I think) information for "invoke" if you use it.
You encounter an important difference between Masm and Nasm syntax:
push hInst
in Masm syntax means the contents of "hInst", in Nasm it means address (offset part if the address). We need:
push dword [hInst]
Nasm won't remember that we called hInst "dd" or "dword" elsewhere, so we have to provide the size.
Micro$oft says this:
https://docs.microsoft.com/en-us/cpp/assembler/masm/proc?view=vs-2017They speak of providing "rewind information" for "structured exception handling. I don't know how to do that.
Sorry I can't help you more!
Best,
Frank
Well, I see you've found out more. Carry on!