The error code looks like it has the "wrong bitness", meaning you're probably mixing 32-bit and 64-bit executables/DLLs. The setting in the Project properties "Linker->Advanced->Target Machine" should be set to the same value in your DLL and in the executable loading that DLL.
Loadlibrary always return NULL
-
22-06-2023 - |
Question
HINSTANCE hinstLib=LoadLibrary("C:\\mydll.dll");
I have no idea why I always get 0
in return after running that line of code.
Actually I have also another COM dll namely mydllCOM.dll
that I already registered successfully with regsvr32
command. I would like to use the above (mydll.dll)
in my application but always fail at the line as mentioned.
The error code I got from GetLastError is 193
and I have no idea, why it is about the wrong type of dll
La solution
Autres conseils
I had a similar problem but with a dll that wasn't mine. The solution was to change the Character set(i.e. Project properties->configuration Properties->general->Character set). The default was unicode and when I changed it to multi-Byte i managed to load the dll.
You can't load 32bit DLLs into 64bit applications and vice versa.
You need to recompile your Application
and Dll
with the same Linker->Advanced->Target Machine
setting.