繁体   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