[英]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下運行的應用程序來引用它。
您可以為您的應用程序執行自定義Wine構建( 主頁 , Wikipedia頁面 )。 不過,我們在這里談論的是一把大錘子。 :-)
DLL是一種用於windows的格式(即它是共享庫概念的MS實現)。
它不是Linux理解的格式。
Linux將ELF格式用於動態庫。
你為什么要這樣做? 要執行使用該DLL的程序( .exe
)? 在這種情況下,您的Linux機器上需要一個Windows模擬器,例如wine 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.