Windows DLL в системе Linux - PullRequest
       13

Windows DLL в системе Linux

6 голосов
/ 31 декабря 2010

Интересно, можно ли загрузить DLL операционной системы Windows (например, user32.dll) в приложении (на любом языке программирования) с * 1005? * Linux операционная система.

DLL будет находиться в каталоге в файловой системе Linux.

Спасибо за помощь.

Привет! * * 1013

Ответы [ 6 ]

9 голосов
/ 31 декабря 2010

Да, вы можете загрузить DLL и вызывать ее функции, используя соответствующую библиотеку-оболочку, но это принципиально бесполезно, если у самой DLL есть зависимости от платформы, которых нет. Этот подход используется для таких вещей, как видеокодеки с закрытым исходным кодом, где нет (нетривиальных) зависимостей.

User32.dll, конечно, является частью ОС и неразрывно связана со многими функциями ядра NT, ни одна из которых не существует в Linux. Wine не использует Windows user32.dll, но предоставляет свою собственную версию, которая обеспечивает эквивалентную функциональность.

Загрузка Windows 'user32.dll определенно не будет полезна, так как она в основном будет оболочкой для других DLL, процессов (например, CSRSS) и вызовов ядра, которых нет в Linux. Вы можете загрузить и использовать Wine, хотя.

8 голосов
/ 31 декабря 2010

Нет.Архитектуры принципиально разные.

Замечу, ваш вопрос помечен тегом C ++.Если это была DLL-библиотека .net (созданная с помощью байт-кода CLR), то вы могли бы ссылаться на нее через приложение, работающее под Mono.

7 голосов
/ 31 декабря 2010

Это возможно, если вы напишите обертку для него.Вот так win32 кодеки работают в Linux.Также Wine использует много DLL.

4 голосов
/ 31 декабря 2010

Вы, вероятно, могли бы сделать пользовательскую сборку Wine ( домашняя страница , страница Википедии ) для своего приложения. Здесь мы говорим о большом молотке. : -)

2 голосов
/ 31 декабря 2010

DLL - это формат для Windows (то есть, это реализация концепции общей библиотеки в MS).
Это не тот формат, который понимает Linux.
Linux использует формат ELF для динамических библиотек.

0 голосов
/ 31 декабря 2010

Почему вы хотите это сделать?Чтобы выполнить программу (.exe), которая использует эту DLL?В этом случае вам понадобится эмулятор Windows на вашем компьютере с Linux, такой как wine .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...