Does your Access database showing error regarding “Bad DLL calling convention” ? If yes, then don’t look for the fixes here and there….just stick to this post and get the best fixes to resolve this.
But before starting with the fixes, have some knowledge of DLL.
Dynamic Link Library – DLL
It’s an important file uses in the windows OS besides this it contains lots of multiple codes as well as procedures which are used for windows program.
This dynamic link library (DLL) file format is created for smooth running of multiple programs in the system. Using this file, the programs are allowed to use their respective information at the same time. Like any other system files, DLL files are vulnerable to corruption and errors. So when the issue like, Error in loading DLL appears, it causes big trouble to users and therefore quick resolution of this error is required.
Well, there are some instant fixes available to fix the loading error in a DLL file. But before stepping forward for the resolution, it’s important to know the reasons causing the Bad DLL Calling Convention Error also called runtime Error 49.
Error Number: Runtime Error 49
Error Name: Bad DLL calling convention
Arguments passed to Dynamic-Link Library (DLL) must match those expected by the routine. Calling conventions deal with type, number and order of arguments.
Basic Reasons Of The Bad DLL Calling Convention Error
Well there are several reasons behind the occurrence of this error 49 Bad DLL Convention error, so have a look over the most reasonable one:
- DLL file is not present directory specified in the path.
- Error in system hardware has damaged the DLL file as well.
- File does not belong to MS Windows DLL
- Virus attacks on the system have affected the DLL file and have added some strange code and the code do not get removed when virus infection was removed from the system.
- File cannot be executed by the DLL.
- DLL file gives the reference of another DLL file which does not exist
- Other things that cause the potential damage to DLL file includes Spyware infection, hardware issue or issues in windows registry etc.
Symptoms Of Access Bad DLL Calling Convention Error
- When such Bad DLL calling convention occurs in the system, it crashes, the programs active window.
- System crash becomes a frequent issue while working on the similar program in which error occurred.
- Windows function will get change and systems don’t respond to commands correctly.
- At regular interval of time system will get freeze.
About Bad DLL Calling Convention Error:
Bad DLL calling convention error occurs usually when one of the procedures finishes and returns to its calling procedure. However the error message doesn’t make any sense because you haven’t called any DLL. Debugging and steeping to your code will take you get crazy because everything is perfectly fine in this, yet the error keeping popping-up here.
Here are the issue that encountered after having this issue.
Issue encountered due to Bad DLL Calling Convention Error
Queries with VBA Functions Suddenly Fail
You will see that suddenly your VBA function fails to work. Your queries having the VBA code starts failing.
Compact and Repair doesn’t help
This is quiet confusing because it doesn’t make any sense because everything looks fine and Compact And Repair doesn’t help.
Initial assumption is that the database is somehow get corrupted, which is true up to some extent. Many of you might have also tried creating a new database and then importing their objects into it. it solves the issue upto much extent.
People then resort to creating a new database and importing their objects into it which is time consuming and a pain. It solves the problem, but there’s a much easier way.
Solutions To Resolve Bad DLL Calling Convention Error
Here are the few option that you can try to fix out this error 49 Bad DLL Calling Convention. So let’s get started…!
Are any Library References Broken?
The very first thing that you need to check is that whether the library references for your module code are valid or not.
Go to the VBA IDE> Tools,> References to see the list of referenced libraries. So watch carefully that none of the checked item written “missing” in front of it.
If so, then fix it and your issue will get resolved.
Also Read: How to solve Error 48: Error in loading DLL?
The Problem Lies with the Compile State of VBA
With the time, the section of the Access database that stores VBA modules code can become bloated and sometime throes strange errors such as Bad DLL calling convention.
So when you compile and run code, VBA leaves behind the old version of the code which is no longer valid, but it is not removed from the database.
Database compact and repair addresses the Jet tables in your database not the code. So, it has no impact when the error arises.
Bad DLL Calling Convention (Error 49) Error Reasons With Their Fixes:
Arguments passed to dynamic-link library (DLL) should match well to those expected by the routine. As, the calling convention works with type, number and ordering of the arguments. This error has following reasons and solutions, so have a look over it.
- Your program is calling a routine in a DLL that’s being passed the wrong type of arguments.
Check out whether the argument type agrees with those specified in the declaration of the routine you are calling.
- Your program is calling a routine in DLL which is passes the wrong number of arguments.
So, check out that are you passing the same number of arguments indicated in the declaration of the routine your are calling.
- Your program is calling a routine in DLL, but not using the StdCall calling convention.
If DLL routine expects arguments by value, then make sure ByVal is specified for those arguments in the declaration for the routine.
Now you can yourself resolve this Access – “Bad Dll Calling Convention” (error 49). So, try it, if you can efficiently perform this manual fixes.