Je suis toujours référencement DLL dans mon code C#, mais ils sont restés un peu un mystère que je voudrais préciser. C'est une sorte de brain dump de questions au sujet de la DLL
Je comprends une DLL est une bibliothèque liée dynamiquement que je comprends, cela signifie qu'au moment de l'exécution d'un autre programme peut accéder à cette bibliothèque pour obtenir des "fonctionnalités". Toutefois,,,
Considérez les points suivants ASP.Net projet...
Web.dll Business.dll
Web.dll est l'extrémité avant de la fonctionnalité et les références business.dll pour les types et les méthodes.
1) À quel moment web.dll un lien dynamique vers business.dll? Vous remarquerez beaucoup dans Windows HDD raclée pour des petites tâches lors de l'utilisation de Word, etc et je pense que ce Mot va au large et dynamique de la liaison de la fonctionnalité de l'autre DLL?
1a) en Outre que les charges et les liens DLL - l'O/S ou de certains d'exécution framework comme l' .Net framework?
1b) Quel est le processus de "création de liens"? Les chèques faite qu'il y a de compatibilité? Le chargement dans la même mémoire? Ce que cette liaison ne signifie réellement?
2) Que s'exécute le code de la DLL? Est-il exécuté par le processeur, ou est-il une autre étape de la traduction ou de la compilation avant que le processeur va comprendre le code à l'intérieur de la DLL?
2a) Dans le cas d'une DLL construit à partir de C# .net qu'est-ce que cette exécution? L' .Net-cadre ou le système d'exploitation directement?
3) une DLL de dire que Linux travailler sur un système Windows (si une telle chose existe) ou sont-ils spécifiques au système d'exploitation?
4) Sont-ils spécifiques à un cadre particulier? Peut une DLL construit à l'aide de C# .Net être utilisé par une DLL construit avec Borland C++ (exemple seulement)?
4a) Si la réponse à la 4 est "non" alors, vraiment, quel est l'intérêt d'une DLL? Pourquoi ne pas les différents cadres utilisent leurs propres formats de fichiers liés? E. g. un .exe construire .Net sait qu'un type de fichier de .abc est quelque chose qu'il peut lien dans son code.
5) revenir à l'web.dll / business.dll exemple. Pour obtenir une classe de type de client que j'avais besoin de faire référence à business.dll à partir de web.dll. Cela doit signifier que business.dll contient un cahier des charges, de la sorte, de ce qu'un client de la classe est en réalité. Si j'avais compilé mon business.dll fichier en dire Delphi serait C# le comprendre et être en mesure de créer un client de la classe ou est-il une sorte d'en-tête info ou quelque chose qui dit "hey désolé vous ne pouvez servir de moi à partir d'un autre delphi dll".
5a) est de Même pour les méthodes.. puis-je écrire un CreateInvoice méthode dans une DLL, le compiler en C++ et ensuite de l'accès et de l'exécuter à partir de C#? Ce qui l'arrête ou me permet de faire ce.
6) Sur le thème de la DLL hijacking, sûrement le remplacement de la (mauvaise) DLL doit contenir la méthode exacte des signatures, des types comme celui qui s'est détourné. Je suppose que ce ne sera pas difficile à faire si vous pourriez trouver quelles méthodes, etc. sont disponibles dans la DLL originale.
6a) Un peu de répéter la question ici, mais c'est ce que dans mon programme C# est de décider si je peux accéder à une autre DLL? Si mon détourné DLL contenues exactement les mêmes méthodes et les types que l'original, mais il a été compilé dans un autre lanugage serait-il travailler?
Juste un peu plus de choses qui m'est venue à la dernière minute...
- Qu'est-ce que DLL importation? et de l'enregistrement de dll?
C'est tout pour l'instant!
Merci.