You cannot always use the SYSTEM(STDCALL) convention for calling programs that have multiple entry points (PROCEDURE DIVISION USING . . . and ENTRY xxx USING . . .).
If the number of parameters in each entry point is not the same or if the caller does not pass the number of arguments that the called entry point expects, the STDCALL convention causes unpredictable results. The STDCALL convention requires the called program to clean up the stack, where the calling program placed the arguments. Because the called program has no way to determine how many arguments were passed to it, it uses the expected number of arguments. When this number is not the same as the number passed, the called program cannot clean up the stack correctly.
Because you cannot use a common exit point for programs that have multiple entry points, the fact that the different entry points have a different number of arguments also makes it impossible to determine how to clean up the stack correctly.
Data type: Because STDCALL linkage uses 4 bytes on the stack for each argument, differences in data type are immaterial.
related references
SYSTEM