Je me demande si vous pouvez La DLL serait dans un répertoire du système de fichiers Linux. P>
Merci pour l'aide. P>
Salutations! P>
6 Réponses :
DLL est un format pour Windows (c'est-à-dire la mise en œuvre du concept de bibliothèque partagée).
Ce n'est pas dans un format que Linux comprend.
Linux utilise le format ELF pour les bibliothèques dynamiques. p>
non. Les architectures sont fondamentalement différentes. p>
Je note que votre question est étiquetée C ++. S'il s'agissait d'une dll .NET (construite avec CLR Bytecode), vous pouvez em> le em> pour la référencer via une application exécutée sous Mono. P>
Pourquoi voulez-vous faire cela? Pour exécuter un programme ( .exe code>) qui utilise cette DLL? Dans ce cas, vous avez besoin d'un émulateur Windows sur votre machine Linux, telle que Wine . P>
Le vin n'est pas un émulateur, c'est une couche de compatibilité. Cela ne fonctionne pas si vous n'êtes pas dans une architecture X86 ou AMD64.
Vous pouvez probablement faire une construction de vin personnalisée ( page d'accueil , page wikipedia ) pour votre demande. Nous parlons d'un
Il est possible si vous écrivez une enveloppe pour cela. C'est ainsi que le Win32 codecs fonctionne sur Linux. Aussi Wine utilise de nombreuses DLL. p>
Oui, vous pouvez charger une DLL et appeler ses fonctions à l'aide d'une bibliothèque d'enveloppe appropriée, mais qui est fondamentalement inutile si la DLL elle-même a des dépendances sur la plate-forme qui ne sont pas présentes. Cette approche est utilisée pour des choses comme des codecs vidéo à la source fermée, où aucune dépendances (non-triviales) n'existe. P>
user32.dll est bien sûr une partie du système d'exploitation et intrinsèquement liée à de nombreuses fonctions de noyau NT, dont aucune n'existe sous Linux. Le vin n'utilise pas les Windows User32.dll, mais fournit sa propre version qui donne une fonctionnalité équivalente. P>
Chargement de Windows 'User32.dll ne serait certainement pas utile, car il s'agirait principalement d'une enveloppe pour d'autres DLL, processus (par exemple, CSRSS) et appels de noyau qui ne sont pas présents sous Linux. Vous pouvez charger et utiliser le vin. P>
Bien sûr, vous pouvez: fopen ("user32.dll", "rb"). La question est: que veux-tu faire avec ça ???
Je veux utiliser les fonctions qui ont un dll particulier (par exemple, user32.dll).
Ce n'est pas possible (directement) possible. Il peut y avoir des moyens d'utiliser du vin.