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

Visual C++ Discussion :

Problème avec les chargements de fichiers exécutables


Sujet :

Visual C++

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Problème avec les chargements de fichiers exécutables
    Bonjour tout le monde !
    Je commence tout juste avec visual C++ express 2008 dans le cadre d'un projet avec openCV et donc sous windows, dont je n'ai pas vraiment l'habitude d'utiliser pour ce qui touche à la programmation.

    Cependant, au niveau des fichiers chargés, je ne comprend pas ce que certains font ici, dans le genre de :
    'Base_openCV.exe' : Chargé 'C:\Program Files\Babylon\Babylon-Pro\captlib.dll
    Ce qui je pense est à l'origine de l'erreur :
    Le programme '[5644] Base_openCV.exe: Natif' s'est arrêté avec le code -1073741510 (0xc000013a).


    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
     
    ...
    Base_openCV.exe' : Chargé 'C:\Windows\System32\msctf.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\lpk.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\usp10.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\APSHook.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\psapi.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\apphelp.dll'
    Le thread 'Thread Win32' (0x168c) s'est arrêté avec le code 0 (0x0).
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\uxtheme.dll'
    'Base_openCV.exe' : Chargé 'C:\Program Files\ASUS Security Center\ASUS Security Protect Manager\Bin\ItClient.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\dwmapi.dll'
    'Base_openCV.exe' : Chargé 'C:\Program Files\Babylon\Babylon-Pro\captlib.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\wininet.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\normaliz.dll'
    'Base_openCV.exe' : Chargé 'C:\Windows\System32\iertutil.dll'
    Le thread 'Thread Win32' (0xe84) s'est arrêté avec le code -1073741510 (0xc000013a).
    Le programme '[5644] Base_openCV.exe: Natif' s'est arrêté avec le code -1073741510 (0xc000013a).
    Donc concernant le Path d'environement, j'ai juste rajouté le chemin pour les répertoire "bin" de OpenCV, j'ai également rajouté les différents fichiers relatifs aux fichier includes, sources, librairies dans l'ide

    Et donc voila, je ne comprend pourquoi ces autres fichiers dll sont chargé dans mon appli.

    Merci de m'éclairer

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Ces DLLs sont peut-être utilisées par d'autres DLLs.
    Regarde avec Dependency Walker (depends.exe). Et si ça ne t'indique rien, cherche cette captlib.dll dans le registre (ça peut être un composent COM).

  3. #3
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    quelques unes des DLLs présentes sont des DLLs injectées soit par des applications tiers, soit directement par le système lui-même (cas d'uxtheme.dll).

    Par exemple, APSHook et ItClient sont des DLLs de chez Asus, captlib.dll étant une DLL de Babylon-Pro.

    Ces DLLs sont injectées dans tous les processus pour "aider" à quelque chose : c'est là que cette pratique devient discutable dans le cas des DLL injectées par des programmes tiers et non par le système.

    On a pas forcément besoin des fonctions apportées par ces DLLs, sachant que cette aide est "aveugle" et les DLLs injectées dans tous les processus utilisateur.

    Le seul moyen de s'en passer à coup sûr est de désinstaller les programmes qui les injectent...

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Que veux-tu dire précisément par "injectent" ?
    Parles-tu de hooks ("sale"), ou de composants COM référencés proprement?

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    D'accord, merci pour vos réponse.
    Cependant, je ne peux me passer de ces logiciels, vu qu'ils me sont vraiment utiles.

    Cependant, dans le code, que j'ai collé dans mon premier post, les modules sont chargés mais ne sont pas déchargé à priori à la fermeture de mon application lancé, non ?

    Donc, est-ce qu'il y aurait un moyen pour qu'ils se déchargent normalement et éviter l'arrêt brutal du thread ! Peut-être avec des exclusions ou je ne sais quoi ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Normalement, si le processus n'est pas arrêté brutalement, les DLLs sont correctement déchargées.

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ok merci ! je croyais que dans le log de sortie vc++, on voyait le "déchargement" des dlls chargés.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Normalement, il me semble qu'on doit le voir (ou bien, seuls les déchargements explicites avec FreeLibrary() sont affichés). Mais pour ça, il ne faut pas que le programme soit interrompu à la bourrin: Si la fonction TerminateProcess() est appelée sur un processus, ses DLLs ne seront pas correctement déchargées.

Discussions similaires

  1. Problème avec un chargement de fichier
    Par aljessy dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 20/09/2011, 11h11
  2. Réponses: 3
    Dernier message: 28/02/2009, 23h58
  3. Réponses: 6
    Dernier message: 17/11/2005, 14h39
  4. Réponses: 2
    Dernier message: 10/05/2005, 10h58
  5. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44

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