Linux系统上的Windows DLL

时间:2010-12-31 10:40:41

标签: java c++ windows linux dll

我想知道你是否可以加载DLL ,Windows操作系统(例如,user32.dll),在应用程序(使用任何编程语言)中 Linux 操作系统。

DLL将位于Linux文件系统的目录中。

感谢您的帮助。

问候!

6 个答案:

答案 0 :(得分:9)

是的,您可以使用适当的包装器库加载DLL并调用其函数,但如果DLL本身具有不存在的平台依赖性,那么这基本上是无用的。这种方法用于闭源视频编解码器,其中不存在(非平凡的)依赖性。

User32.dll当然是操作系统的一部分,并且与许多NT内核函数有内在联系,Linux中没有这些函数。 Wine不使用Windows user32.dll,但提供了自己的版本,它提供了相同的功能。

加载Windows'user32.dll肯定没用,因为它主要是其他DLL,进程(例如CSRSS)和Linux下不存在的内核调用的包装器。你可以加载和使用Wine的。

答案 1 :(得分:8)

没有。架构根本不同。

我注意到你的问题被标记为C ++。如果它是.net DLL(使用CLR字节码构建),那么可以通过在Mono下运行的应用程序引用它。

答案 2 :(得分:7)

如果你为它写一个包装器,它是可能的。这就是win32 codecs在Linux上的工作方式。此外Wine使用了许多DLL。

答案 3 :(得分:4)

您可以为您的应用程序执行自定义Wine构建(home pageWikipedia page)。不过,我们在这里讨论的是一个锤子。 : - )

答案 4 :(得分:2)

DLL是windows的一种格式(即它是共享库概念的MS实现) 它不是Linux理解的格式 Linux将ELF格式用于动态库。

答案 5 :(得分:0)

你为什么要这样做?要执行使用该DLL的程序(.exe)?在这种情况下,您的Linux机器上需要一个Windows模拟器,例如wine