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:
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 _dllCam = LoadLibrary(L"C:\\MONCHEMIN\\LibCamVimba.dll");
Il semblerait que le problème soit au niveau du système d'exploitation
Une idée
Partager