GNU/Linux >> Znalost Linux >  >> Linux

Použití Windows DLL z Linuxu

Jakékoli řešení bude vyžadovat „vzdálenou“ vrstvu založenou na TCP/IP mezi knihovnou DLL, která běží v prostředí „podobném oknům“, a vaší linuxovou aplikací.

Budete muset napsat jednoduchou aplikaci pro PC, abyste odhalili funkce DLL, buď pomocí homebrew protokolu, nebo možná protokolů XML-RPC, SOAP nebo JSON. RemObjects SDK vám může pomoci – ale může být přehnané.

Zůstal bych u 'skutečného' nebo virtualizovaného PC. Pokud používáte Wine, vývojáři DLL pravděpodobně nenabídnou žádnou podporu.

MONO také pravděpodobně nepomůže, protože vaše DLL pravděpodobně NENÍ sestavení .NET.


Napsal jsem malý modul Python pro volání do Windows DLL z Pythonu na Linuxu. Je založen na IPC mezi běžným procesem Linux/Unix Python a procesem Python založeným na Wine. Protože jsem to sám potřeboval v příliš mnoha různých případech použití/scénářů, navrhl jsem to jako "obecný" ctypes výměna modulu drop-in, která většinu požadované instalace provádí automaticky na pozadí.

Příklad:Předpokládejme, že jste v Pythonu na Linuxu, máte nainstalované Wine a chcete volat do msvcrt.dll (runtime knihovna Microsoft C). Můžete provést následující:

from zugbruecke import ctypes
dll_pow = ctypes.cdll.msvcrt.pow
dll_pow.argtypes = (ctypes.c_double, ctypes.c_double)
dll_pow.restype = ctypes.c_double
print('You should expect "1024.0" to show up here: "%.1f".' % dll_pow(2.0, 10.0))

Zdrojový kód (LGPL), balíček PyPI a dokumentace.

Na okrajích je stále trochu drsný (tj. alfa a nejistý), ale zvládá většinu typů parametrů (včetně ukazatelů).


Linux
  1. Jak monitorovat vzdálený počítač se systémem Windows pomocí Nagios v systému Linux

  2. Spusťte instalační programy na Linuxu z Windows pomocí Cygwin

  3. Použití Windows Subsystem for Linux (WSL) od Sublime Text

  1. Dynamické propojení – Linux vs. Okna

  2. Použití Samby ke sdílení složky od hosta Linuxu s hostitelem Windows ve VirtualBoxu

  3. zkopírujte soubor z Windows do Linuxu

  1. Jak vzdálenou plochu z Windows na plochu Linuxu pomocí XRDP

  2. Připojte se k Linuxu z Windows pomocí PuTTY

  3. Přesná kopie souborů z NTFS do jiného NTFS pomocí Linuxu