DllImport et chemin non fixe en VB2008

Résolu
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 24 févr. 2009 à 12:25
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 1 mars 2009 à 15:03
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 févr. 2009 à 08:15
possible peut etre aussi de jouer avec l'utilitaire unrar (lignes de commande)

http://www.rarlab.com/rar/unrarw32.exe
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 févr. 2009 à 14:15
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%
0
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
24 févr. 2009 à 18:14
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)?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 févr. 2009 à 23:56
quel type de dll est-ce ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
25 févr. 2009 à 18:26
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)
0
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
1 mars 2009 à 15:03
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
0
Rejoignez-nous