interop_loadLibrary

指定した.NETのライブラリを読み込み、エントリポイントを実行します。


taiseiue | 2024-05-02

定義

名前空間: Alice.Interop
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.Interop.cs

interop_loadLibrary(string)

指定したパスにある.NETのライブラリを読み込み、エントリポイントを実行します。

AliceScript
namespace Alice.Interop;
public void interop_loadLibrary(string path);
引数
path 読み込むライブラリファイルへのパス

対応
AliceScript 3.0、4
AliceSister 3.0、4
Losetta 0.10、0.11

interop_loadLibrary(bytes)

指定したデータにある.NETのライブラリを読み込み、エントリポイントを実行します。

AliceScript
namespace Alice.Interop;
public void interop_loadLibrary(bytes assembly);
引数
assembly 読み込むライブラリファイルのデータを表すバイト列

対応
AliceScript 3.0、4
AliceSister 3.0、4
Losetta 0.10、0.11

説明

この関数は、.NETライブラリを動的に読み込み、ライブラリのエントリポイントを実行します。 読み込むライブラリは、AliceScriptの実装に応じたバージョンの.NETに向けてコンパイルされたものでかつ、ひとつ以上のILibraryインターフェィスを実装している必要があります。 使用できるエントリポイントが存在しない場合でも、例外は発生しません。

ライブラリの読み込み中に発生した例外は0x040 LIBRARY_EXCEPTIONまたは0x01b FILE_NOT_FOUNDとして報告されます。

次の例では、Win32APIで定義されているMessageBox関数を使用してメッセージボックスを表示します。

AliceScript
using Alice.Interop;

var msgBox = interop_getInvoker("MessageBox", "user32.dll", "INT", ["HWND", "LPCTSTR", "LPCTSTR", "UINT"], "MessageBoxW", true);

msgBox(0, "Hello,World!", "TestMessage", 0);