DllImport et chemin non fixe en VB2008

Résolu
Signaler
Messages postés
10
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Messages postés
10
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Bonjour,

j'ai un problème (qui a déjà été évoqué) avec l'importation d'une dll (unrar.dll pour être précis) dont le chemin sera aléatoire. En fait, je suis sur une application qui se lance directement depuis un DVD et la dll se trouve dans un des répertoires de ce DVD. Je ne veux pas copier cette dll dans le répertoire système de windows au démarrage de l'appli. et je cherche donc par quelle méthode je pourrai indiquer dynamiquement le chemin de la dll (en sachant que DllImport implique la déclaration d'une constante entre guillemets. Apparemment, diverses astuces sont applicables, en tous cas en C++, mais je débute et je ne vois pas quelles voies explorer.

Merci d'avance pour votre aide !

6 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
possible peut etre aussi de jouer avec l'utilitaire unrar (lignes de commande)

http://www.rarlab.com/rar/unrarw32.exe
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
aléatoire ? dit nous en plus.

normallement, Windows regarde dans l'ordre :

dans le chemin de l'executable
dans un dossier que l'on peut personnaliser, dans l'application
dans les dossiers de %PATH%
Messages postés
10
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
6 mars 2009

Bonsoir Renfield,

d'abord, merci pour ton intérêt.
ensuite : pourquoi aléatoire ? ben tout simplement parceque la lettre du lecteur de DVD peut changer en fonction des configurations.

puis : que ce soit en mettant la dll à la racine du DVD ou dans un répertoire du DVD, Windows ne la trouve pas (enfin mon Windows en tout cas... :-) et je ne pense pas qu'il soit plus c... qu'un autre Windows)...

Est-il possible de faire une classe par lecteur logique (de D:\ à .... Z:\) et d'appeler cette classe en fonction du lecteur dans lequel se trouve le DVD (Application.StarupPath)?
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
quel type de dll est-ce ?
Messages postés
10
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
6 mars 2009

Re Renfield,

comme indiqué plus haut, la dll en cause est unrar.dll, mais je vais laisser tomber cette option (ayant un soucis supplémentaire : même en installant la dll dans system32, celà ne fonctionne plus une fois l'application installée sur DVD) je vais essayer de trouver une dll managée et documentée...

d'ailleurs si quelqu'un en connait une avec un algorithme de compression semblabe ou proche en efficacité à celui de WinRar, je suis preneur :-)

J'ai testé zlib en version c# qui est moins performante (mais surtout qui plante dès que le fichier à compresser dépasse 16 Mo...

J'ai aussi essayé d'utiliser l'algorithme de compression implémenté avec par IO.compression qui lui arrive à des fichiers compressés ayant une taille supérieure au fichiers d'origine !!!

en bref, je ne suis pas sorti de la ....(muise)
Messages postés
10
Date d'inscription
samedi 9 avril 2005
Statut
Membre
Dernière intervention
6 mars 2009

Re Renfield,


effectivement, ca a été la bonne solution, mais je suis finalement passé par la version standalone de 7-zip (qui est gratuit) et qui me permet donc d'extraire les fichiers en ligne de commande avec les paramètres voulus.

Merci à toi...

Maintenant, il ne te reste plus qu'à trouver une solution pour mon nouveau problème...

@ pluches