Bonjour,
Je m'en remets à vous car je me pose de grandes questions au sujet des DLL. J'espère avant tout que ma questions trouvera sa place dans ce forum.
Pour le contexte : je dispose de compétences en développement web (PHP plutôt qu'ASP). En Objective-C et en Java. Je m'intéresse de plus en plus au C#, langage avec lequel j'ai vu qu'il était possible de créer des DLL (voilà pourquoi je poste ici).
Aujourd'hui, je me demande quel est le mode de fonctionnement des DLL, la logique qui va derrière. Pour moi, jusqu'à aujourd'hui, une DLL c'est une library, qui contient un certain nombre de méthodes, c'est un moyen de "compartimenter" le projet tout en ayant la possibilité de le modifier facilement. Par exemple, si j'ai un logiciel pour dessiner, je vais avoir une DLL qui va définir toutes mes formes et paramètres de pinceaux. Comme ça, si demain je veux en ajouter une, j'ai juste à modifier cette DLL et la remplacer.
Est-ce bien ainsi que fonctionnent ces fichiers ?
Si je me pose toutes ces questions, c'est parce qu'en tant que joueur occasionnel, je joue à des jeux de shoot en ligne (Combat Arms en l’occurrence) et je me suis demandé comment fonctionnaient les logiciels de hack, comment un programme peut en modifier un autre sans que cela ne pose de problèmes de sécurité. Là je me suis rendu compte qu'en faite, il s'agissait de DLL. Mais, ces DLL ont toutes des noms différents donc j'en suis venu à me demander, est-ce qu'il suffit d'insérer une DLL custom dans le dossier d'un logiciel pour qu'il l'interprète ? Cela me semble impossible, il faut bien que quelque part dans le code de base, il y ai un appel à la dll non ?
Comment ces dll interagissent avec le logiciel ?
Enfin, pour comprendre d'avantage le fonctionnement et trouver plus de réponses, je souhaiterais savoir s'il est possible et facile de réaliser une DLL qui, par exemple, ajoute un bouton à la calculatrice Windows, un simple bouton qui au clique affiche "Hello World" ? Est-ce que dans le principe, la modification d'un logiciel comme ça est légale et d'un point de vue sécurité, est-ce que les anti-virus l'acceptent ?
Si c'est facile et possible, auriez-vous des tutoriaux sous la main pour me guider ?
Pour finir avec toutes mes questions et si je ne me trompe pas en affirmant qu'une DLL est réalisable en C#, je crois savoir qu'elle l'est aussi en C++. Concrètement, y aura-t-il une différence sur le rendu en fonction du langage utilisé pour le développement ? Est-ce que l'une sera plus rapide en terme de temps d'exécution que l'autre, ou seront-elles parfaitement identique ? Si cela dépend des compilateurs, est-ce que ceux pour C++ ont un meilleur rendu que celui de Visual Studio pour le C# ?
Merci à vous d'avoir pris le temps de me lire, j'espère vraiment ne pas faire fausse route depuis le début.
Et merci d'avance à ceux qui apporteront des réponses à mes questions.
Partager