Problème de chargement de DLL
Bonjour à tous
J'ai développé une DLL avec visual studio 2017 en C/C++ que j'utilise avec une autre application FMX développé avec CBuilder. Pour charger ma DLL j'utilise le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
_dllCam = LoadLibrary(L"LibCamVimba.dll");
if (_dllCam != NULL) {
libvim_Test = (IFUNC)GetProcAddress(_dllCam, "ncl_Test");
libvim_InitCamera = (IFUNCPI)GetProcAddress(_dllCam, "ncl_InitCamera");
libvim_StopCamera = (VFUNC)GetProcAddress(_dllCam, "ncl_StopCamera");
libvim_PrepEnr = (IFUNCSSSS)GetProcAddress(_dllCam, "ncl_PrepEnr");
libvim_StartEnr = (IFUNCI)GetProcAddress(_dllCam, "ncl_StartEnr");
libvim_GetIndex = (IFUNCI)GetProcAddress(_dllCam, "ncl_GetIndex");
libvim_GetImage = (IFUNCPI)GetProcAddress(_dllCam, "ncl_GetImage");
libvim_GetFreq = (DFUNC)GetProcAddress(_dllCam, "ncl_GetFreq");
if (libvim_Test != NULL && libvim_InitCamera != NULL && libvim_StartEnr != NULL) {
lblAlerte->Text = "DLL OK ";
}
else
lblAlerte->Text = "PROBLEME func TEST";
}
else {
int err = GetLastError();
lblAlerte->Text = "PROBLEME DLL " + IntToStr(err);
} |
Ce code fonctionne bien sous windows7 dans mon environnement de développement. Mais lorsque je mets les exécutables sur le PC qui va exploiter j'ai l'erreur 126 = ERROR_MOD_NOT_FOUND
Le PC d'exploitation es sous windows10.
J'ai vérifié que ma dll est bien dans le même répertoire que l’exécutable.
J'ai même essayé en indiquant le chemin absolu de ma dll
Code:
1 2
|
_dllCam = LoadLibrary(L"C:\\MONCHEMIN\\LibCamVimba.dll"); |
Par acquis de conscience j'ai récupéré l'erreur juste après LoadLibrary(L"LibCamVimba.dll"); dans mon environement de développement et j'ai l'erreur 126 mais il semble que le module est bien chargé car la variable _dllCam n'est pas nulle et quand j’appelle les fonctions de la DLL par la suite dans le programme ça fonctionne.
Il semblerait que le problème soit au niveau du système d'exploitation
Une idée