簡體   English   中英

Linux系統上的Windows DLL

[英]Windows DLL on Linux System

我想知道你是否可以在Linux操作系統的應用程序 (使用任何編程語言)中加載 Windows操作系統的DLL (例如,user32.dll)。

DLL將位於Linux文件系統上的目錄中。

謝謝您的幫助。

問候!

是的,您可以通過使用適當的包裝器庫來加載DLL並調用其函數,但如果DLL本身具有不存在的平台依賴性,那么這基本上是無用的。 這種方法用於閉源視頻編解碼器之類的東西,其中不存在(非平凡的)依賴性。

User32.dll當然是操作系統的一部分,並且與許多NT內核函數有內在聯系,Linux中沒有這些函數。 Wine不使用Windows user32.dll,但提供了自己的版本,它提供了相同的功能。

加載Windows'user32.dll肯定沒用,因為它主要是其他DLL,進程(例如CSRSS)和Linux下不存在的內核調用的包裝器。 你可以加載和使用Wine的。

不,架構根本不同。

我注意到你的問題被標記為C ++。 如果它是.net DLL(使用CLR字節碼構建),那么您可以通過在Mono下運行的應用程序引用它。

如果你為它編寫一個包裝器,這是可能的。 這就是win32編解碼器在Linux上的工作方式。 Wine也使用了很多DLL。

您可以為您的應用程序執行自定義Wine構建( 主頁Wikipedia頁面 )。 不過,我們在這里談論的是一把錘子。 :-)

DLL是一種用於windows的格式(即它是共享庫概念的MS實現)。
它不是Linux理解的格式。
Linux將ELF格式用於動態庫。

你為什么要這樣做? 要執行使用該DLL的程序( .exe )? 在這種情況下,您的Linux機器上需要一個Windows模擬器,例如wine

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM