Thanks, Frank. Here's a follow-up question:
The problem may be the way parameters are passed from the calling function to the DLL.
In 32-bit MASM, we use a standard C-type function signature, e.g.
FunctionName PROC A:PTR DWord, B:PTR DWord
where parameters are passed in the function header.
However, in both 32-bit and 64-bit NASM, a DLL entry point is specified this way:
FunctionName:
where in 32-bit NASM, parameters are passed on the stack and in 64-bit NASM, parameters are passed (for Windows) in rcx, rdx, r8, and r9, not by using a C-style function header.
If calling from an external function, could this lack of a C-style function signature be the problem, that the external function cannot recognize a signature?