CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Faire un paquet avec les bons DLL

Bigloo
Bigloo
Niveau 10
24 décembre 2005 à 23:23:57

Salut (joyeux Noël >-> )

(Je précise que j´utilise peu Windows d´habitude donc que certains détails peuvent m´échapper)

J´utilise un compilateur pour code PHP nommé Roadsend en version bêta, qui lui même est basé sur le compilateur Bigloo (d´après ce que j´ai compris, c´est à dire pas grand chose). J´ai compilé un helloworld chez moi : ça marche très bien.

Le problème est que chez les personnes n´ayant pas tout ce que j´ai installé avec Roadsend, un (ou peut-être plusieurs) DLL est (sont) manquant(s). J´ai deux questions, donc :

- Comment déterminer à partir de chez moi de quelles DLL mes programmes ont besoin ? Y´a-t´il un programme qui vérifiera les liens tout seul et me fera la liste ?
- Si je veux diffuser mes programmes, il suffit d´installer ces DLL dans le dossier system pour que tout marche ?

Merci.

godrik
godrik
Niveau 30
24 décembre 2005 à 23:54:22

tu peux savoir quel sont les DLL neccaissaire d´une appli: une des applis du kit de developement microsoft te permettait entre autre (entre autre) de visioner les dependance d´une application. (ou peut etre une appli qui consulte les kernel object... a developper)

dans le repertoire system ca marchera mais c´est laid. tu peux aussi les mettre dans le repertoire du binaire, mais c´est laid aussi. la meilleur solution consiste (enfin c´est mon avis) de les mettre dans un repertoire de ton choix et de rajouter le nom du repertoire dans le PATH.

la fonction appeler par l´application pour charger les bibliotheques est loadlibrary decrite a l´url suivante:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/loadlibrary.asp

dnob700
dnob700
Niveau 10
25 décembre 2005 à 01:11:27

un logiciel pour déterminer les DLL utilisée par un programme est Dependency walker que tu peut télécharger là : http://www.dependencywalker.com/

Mais je crois qu´il ne marche que si les DLL sont lier statiquement au programme et non pas chargé dynamiquement (je n´en suis pas sûr, et de toute manière, ça doit être le comportement par défaut pour un compilateur). De toutes manière la doc de ton compilo doit pouvoir te dire quelles sont ces DLL.

Pour les installer, le problème de les mettre dans un répertoire système, c´est que si tu le fait, tu ne vas pas vérifier si elles existent déjà ou non dans une version entérieur ou non dans un autre répertoire système, ce qui peut entrainer des conflits.
Le mettre dans un répertoire arbitraire n´est pas bon à mon avis car modifier le PATH n´est pas vraiment "respectueux" de la machine : si tout les programme faisaient ça, on se retrouverait avec des PATH de 3 kilomètres. D´autant plus que ça n´apporte rien par rapport à mettre les DLL directement dans le dossier de l´aplication, ce qui est donc, d´après moi, la meilleurs méthode.

Bigloo
Bigloo
Niveau 10
25 décembre 2005 à 13:06:51

Merci pour les réponses :) Je verrai tout ça.

"dans le repertoire system ca marchera mais c´est laid. tu peux aussi les mettre dans le repertoire du binaire, mais c´est laid aussi. la meilleur solution consiste (enfin c´est mon avis) de les mettre dans un repertoire de ton choix et de rajouter le nom du repertoire dans le PATH. "
-> Là je serai plutôt de l´avis de Dnob. Si elles sont pas déjà dans le system, autant les mettre en le précisant à l´utilisateur, comme ça d´autres personnes que moi pourront les réutiliser.

"De toutes manière la doc de ton compilo doit pouvoir te dire quelles sont ces DLL. "
-> Promis, j´ai cherché. Bon forcément j´ai pas tout lu. Comme par défaut c´est pour faire des PHP compilés sur le serveur web, j´ai pas franchement trouvé grand chose.

"tu ne vas pas vérifier si elles existent déjà ou non dans une version entérieur ou non dans un autre répertoire système"
-> A la limite ça je peux le faire moi même..

Enfin voilà, je regarderai tout ça. Encore merci pour les deux liens.

godrik
godrik
Niveau 30
25 décembre 2005 à 14:51:28

je ne suis pas personellement de cette avis pour des problemes d´administrations de machine.
Tu peux avoir regulierment des problemes de version et cie.
en faisant de la sorte, tu permet a tout moment de revenir en arriere.
J´ai eu entre autres des problemes avec la lib opengl lié au jeux homeworld.
Je suis entrain de reflechir a un systeme de packaging a la unix pour les libs et autre composant system.
peut etre que je mettrais en place pour windows un systeme ressemblant a stow.
en outre, je regrettes actuellement que les applications sous windwos ecrivent de facon incontrolé dans les repertoires systeme, et qu´il est impossible a un utilisateur non administrateur d´installé un logicielpour lui tout seul...

Bigloo
Bigloo
Niveau 10
25 décembre 2005 à 17:29:23

Sans doute. Tu sais moi je viens d´un système où pour enregistrer une préférence de l´utilisateur on fait

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:monObjet forKey:maClef];

donc j´ai un peu de mal à saisir ces concepts (dont on avait déjà parlé d´ailleurs sur un autre topic).

De toute façon je compte pas développer réellement en PHP ni pour Windows (ni développer réellement d´ailleurs), c´est plus pour pouvoir expliquer à d´autres comment faire après.

A plus.

dnob700
dnob700
Niveau 10
25 décembre 2005 à 21:49:06

De toute manière les DLL sont obsolètes maintenant, et c´est ce problème (les différentes versions) qui est l´une des principales raisons au modèles utilisé par le .NET framework où toutes les versions des "DLL" peuvent cohabiter.

Bon, bien sur, ensuite on se retrouve avec des milliers de fichiers inutiles, mais au moins ça marche...

Bigloo
Bigloo
Niveau 10
25 décembre 2005 à 21:54:45

Tu me perds complètement là ^^

Les DLL fonctionneront toujours sous Vista ?

dnob700
dnob700
Niveau 10
26 décembre 2005 à 00:24:09

Oui bien sûr, mais leur concept est jugé obsolète par Microsoft (ce quin´est pas faux) qui mets donc en avant sa nouvelle technologie (.NET) appelée à les remplacer. Mais bien sur il y a toujours un support pour les DLL.

godrik
godrik
Niveau 30
26 décembre 2005 à 02:12:35

ca a l´air trop bien .net, il faut que je me renseigne (quand j´aurais quelques heures a moi)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment