Bad DLL calling convention
Arguments passed to a dynamic-link library (DLL) must exactly match those expected by the routine. Calling conventions deal with number, type, and order of arguments. Your program may be calling a routine in a DLL that is being passed the wrong type or number of arguments.
To correct this error
Make sure all argument types agree with those specified in the declaration of the routine that you are calling.
Make sure you are passing the same number of arguments indicated in the declaration of the routine that you are calling.
If the DLL routine expects arguments by value, make sure
ByValis specified for those arguments in the declaration for the routine.