我想知道你是否可以加载DLL ,Windows操作系统(例如,user32.dll),在应用程序(使用任何编程语言)中 Linux 操作系统。
DLL将位于Linux文件系统的目录中。
感谢您的帮助。
问候!
答案 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 page,Wikipedia page)。不过,我们在这里讨论的是一个大锤子。 : - )
答案 4 :(得分:2)
DLL是windows的一种格式(即它是共享库概念的MS实现) 它不是Linux理解的格式 Linux将ELF格式用于动态库。
答案 5 :(得分:0)
你为什么要这样做?要执行使用该DLL的程序(.exe
)?在这种情况下,您的Linux机器上需要一个Windows模拟器,例如wine。