IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Probl�me de chargement de DLL


Sujet :

C++Builder

  1. #1
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut 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 : 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);
    	}
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Hello
    probl�me �trange
    une petite chose il faut utiliser LoadLibraryW si tu utilise unicode
    quelques pistes de r�solution

    a tu essay� le d�bogage distant ?
    essaye d'installer une machine virtuelle (VirtualBox) et refais un test dans une installation propre.
    tu pourrais poster ta DLL pour me permettre de tester ton code
    tu peux �galement essayer de charger ta DLL comme un fichier normal et voir si c�est possible que donne le chargement statique de ta dll?
    Ta Dll cr�e avec VS a elle des d�pendances avec d�autres Dll de VS non presente sur le syst�me h�te ?
    a tu la m�me erreur en ex�cutant en tant qu'administrateur?

    bien cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  3. #3
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut
    Il y avait un probl�me de d�pendance. Autant le syst�me l'indique pour les executables autant il ne le fait pas pour les dll. Pour connaitre les d�pendances j'ai utilis� le logiciel depends
    Merci pour toutes les pistes.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [XL-2010] Version 64 bit - Probl�me de chargement de DLL
    Par ArnaudEIC dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 09/09/2010, 14h26
  2. Probl�me de chargement de dll
    Par nasbe dans le forum WinDev
    R�ponses: 2
    Dernier message: 09/01/2009, 17h32
  3. Probl�me de Chargement de DLL
    Par coax81 dans le forum Langage
    R�ponses: 7
    Dernier message: 14/10/2008, 18h13
  4. JNI - Probl�me de chargement de DLL
    Par indepthsight dans le forum C++
    R�ponses: 1
    Dernier message: 30/11/2007, 10h19
  5. [JNI] Encore un probl�me de chargement de dll
    Par seiryujay dans le forum Entr�e/Sortie
    R�ponses: 5
    Dernier message: 10/08/2006, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo