dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011
-
10 janv. 2011 à 18:00
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011
-
11 janv. 2011 à 13:56
Bonjour à tous !
Voilà un soucis qui m'a pris la tête tout l'après-midi. Je dois reconnaître que les mots doivent me manquer pour que mes recherches puissent aboutir correctement.
J'ai un projet, dans ma solution, qui utilise des DLLs placées dans un sous répertoire. Au déploiement, ce sous-répertoire est copié avec les DLLs. C'est en fait la contrainte imposée. Le hic, c'est qu'à l'exécution de l'application les DllImports crashent. Sans doute le runtime ne trouve pas les DLLs.
J'ai bien ajouté, inutilement apparemment, le répertoire de recherche des références dans les propriétés du projet.
Y-a-t-il un moyen d'ajouter mon sous-répertoire à ceux scannés par le runtime pour qu'il trouve mes DLLs ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 janv. 2011 à 18:48
Si tu met uniquement ça, sans aucun chemin, tes dlls doivent être soit dans le dossier de l'application, soit dans le dossier System de Windows, soit dans un des dossiers de la variable d'environnement Path.
Essaye de mettre ton sous dossier en chemin relatif dans tes déclarations DllImports, ou alors rajoute le chemin complet de ce dossier dans la variable d'environnement Path.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 10 janv. 2011 à 19:06
j'ai pourtant essayé en relatif, absolut et sans chemin. j'ai toujours cette exception. Je dois mal m'y prendre alors.
L'idée du path n'est pas jouable puisque le déploiement ce fait par copie dur un Windows CE.
Vous n’avez pas trouvé la réponse que vous recherchez ?
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 11 janv. 2011 à 10:06
Admettons que mon chemin soit correctement passé en paramètre du DllImport, la DLL que j'utilise fait appel à d'autres DLLs. Est-il possible que ces autres DLLs ne soient pas trouvées et par conséquent qu'il ne peut pas les charger puisqu'elles ne sont pas dans le répertoire courant ?!
Dans ces conditions, mettre le chemin dans le DllImport ne changera rien ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 11 janv. 2011 à 10:28
Tout à fait, si tes dlls font appels à d'autres dlls, il faut que celles-ci soient trouvables soit (je pense) dans le même dossier que la dll appelante, soit dans un des dossiers de recherche de Windows.
Maintenant, je ne connais pas Windows CE, il existe peut-être des particularités que j'ignore.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 20218 11 janv. 2011 à 10:43
Bonjour,
je pense que la solution proposée d'ajouter ton répertoire dans les variables d'environnment est bonne et que le logiciel 'installation ppourrait le faire.
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 11 janv. 2011 à 10:55
Merci pour vos réponses.
@louis14:
Par logiciel d'installation, tu fais référence au projet qui permet de faire un installeur ? Si tel est le cas, je préfère écarter cette solution (ça n'a pas été demandé). J'ai tenté de modifier moi même la base de registre pour trouver le PATH, et je n'ai pas trouvé où le changer (vu sur Internet : LocalMachine\\Launcher\\SystemPath).
Il y a peut-être des restrictions avec WindowsCE ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 11 janv. 2011 à 13:38
Le path ne se modifie pas dans la base de registre (bien qu'il doit certainement y être enregistré) mais par les variables d'environements.
Sous Windows normal, tu fais un click droit sur Ordinateur et tu choisis Propriétés. Ensuite tu choisis l'onglet des paramètres systèmes avancés, et tu clique sur le bouton variables d'environement.
Sinon sous la console tu utilise la commande Set pour modifier une variable d'environement.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 11 janv. 2011 à 13:56
Il semblerait que Windows CE ne gère pas les variables d'environnement.
Il ne reste plus que la solution de la console qui, pour le moment, ne correspond pas à nos attentes...