GNU/Linux >> Linux の 問題 >  >> Linux

Linux から Windows DLL を使用する

どのソリューションでも、「Windows のような」環境で実行されている DLL と Linux アプリの間に TCP/IP ベースの「リモーティング」レイヤーが必要になります。

Homebrew プロトコルを使用するか、XML-RPC、SOAP、または JSON プロトコルを使用して、DLL 関数を公開する単純な PC アプリを作成する必要があります。 RemObjects SDK が役立つかもしれませんが、やり過ぎかもしれません。

私は「本物の」または仮想化された PC に固執します。 Wine を使用している場合、DLL 開発者がサポートを提供する可能性はほとんどありません。

DLL はおそらく .NET アセンブリではないため、MONO も役に立たないでしょう。


Linux 上の Python から Windows DLL を呼び出すための小さな Python モジュールを作成しました。通常の Linux/Unix Python プロセスと Wine ベースの Python プロセス間の IPC に基づいています。私自身、あまりにも多くの異なるユースケース/シナリオでそれを必要としていたため、「一般的な」ctypes として設計しました。 モジュールのドロップイン交換。これにより、必要な配管のほとんどがバックグラウンドで自動的に行われます。

例:Linux で Python を使用していて、Wine がインストールされていて、msvcrt.dll を呼び出したいとします。 (Microsoft 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))

ソース コード (LGPL)、PyPI パッケージ、ドキュメント。

エッジの周りはまだ少し荒いですが (つまり、アルファと安全でない)、ほとんどのタイプのパラメーター (ポインターを含む) を処理します。


Linux
  1. XRDPを使用してWindowsからLinuxデスクトップにデスクトップをリモート接続する方法

  2. PuTTYを使用してWindowsからLinuxに接続する

  3. Linux を使用した NTFS から別の NTFS へのファイルの正確なコピー

  1. Linux で Nagios を使用してリモート Windows マシンを監視する方法

  2. Cygwin を使用して Windows から Linux 上のソフトウェア インストーラーを起動する

  3. PuTTY を使用して Windows から Linux で実行するコマンドを自動化する

  1. Linux ターミナルから Windows マシンをシャットダウンする

  2. パテを使用して Windows から Linux に scp する

  3. Sublime Text から Windows Subsystem for Linux (WSL) を使用する