PHPでDLLライブラリを呼び出すにはどうすればよいですか?
PHPでDLLライブラリを呼び出すには、エクステンションモジュールとFFIを使用できます。
- エクステンションの有効化: まずPHPの必要なモジュールのエクステンション(例えばphp_xxx.dll)がインストールされているか確認してください。次にPHPの設定ファイル(php.ini)でエクステンションの有効化を行います。対応するエクステンションの行(例えばextension php_xxx.dll)を見つけてコメントアウトを解除します。最後に、PHPサーバを再起動します。
- PHP 7.4以降のバージョンでは、Foreign Function Interface(FFI)モジュールを使用することでC言語のDLLを呼び出すことができます。まずは、PHPにFFIモジュールがインストールされていることを確認し、下記のコードを使用してDLLの呼び出しを行います。
<?php
$ffi = FFI::cdef("
int add(int a, int b);
", "path/to/library.dll"); // 替换为实际的DLL路径
echo $ffi->add(2, 3); // 调用DLL中的add函数,并输出结果
?>
FFI::cdef 関数は DLL ライブラリの関数のプロトタイプを定義します。第 1 引数は関数のプロトタイプの C コード、第 2 引数は DLL ライブラリのパスです。$ffi->関数の名で DLL ライブラリの関数を直接呼び出せます。
注意:ffiモジュールを利用するにはPHPにFFIモジュールがインストールされ、FFI拡張機能が有効化されている必要があります。