This ends up in a run time error if we leave out the parameter in red (and assign n1 locally as in green); the catched error message says that the number of parameters is incorrect. n1 has no function. If we pass the parameter in red, it works.
Why does the call to a X# method from VO require a parameter?
But I'm not sure where you are referring too. DoSomething is the method (in the X# DLL) I call. It works with 1 parameter and also with >1. Only not with 0 (with or without parenthesis) . I'm not sure what this has to do with the VO defines?
Dick, I suspect you have enabled the /vo5 (implicit CLIPPER calling convention) option in your X# library? This will make the method under the hood actually have one hidden parameter, this is important for implementing CLIPPER calling convention. To make sure you avoid this, no matter the compiler options, just explicitly define the method as STRICT: