Visual Basic for Applications Reference

Bad DLL calling convention (Error 49)

See Also    Specifics

argument 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. This error has the following causes and solutions:

  • Your program is calling a routine in a DLL that's being passed the wrong type of arguments.

    Make sure all argument types agree with those specified in the declaration of the routine you are calling.

  • Your program is calling a routine in a DLL that's being passed the wrong number of arguments.

    Make sure you are passing the same number of arguments indicated in the declaration of the routine you are calling.

  • Your program is calling a routine in a DLL, but isn't using the StdCall calling convention.

    If the DLL routine expects arguments by value, then make sure ByVal is specified for those arguments in the declaration for the routine.

  • Your Declare statement for a Windows DLL includes CDecl.

For additional information, select the item in question and press F1.