Mol(Math Object Library) fot .Net

The NativeDll type exposes the following members.

コンストラクター

  名前説明
Public methodNativeDll(String)
path で指定したネイティブな DLL をロードして、そのモジュールハンドルを保持します。 DLL のロードに失敗した場合は例外が発生します。
Public methodNativeDll(String, String)
path で指定したネイティブな DLL をロードして、そのモジュールハンドルを保持します。 DLL のロードに失敗した場合は例外が発生します。

メソッド

  名前説明
Public methodDispose
IDisposable インターフェースメンバ。Windows API の FreeLibrary() を呼び出してロードしたモジュールをアンロードします。 メモリー資源は当然ながらガベージコレクションによって解放されますが、いつ解法されるかはわかりません。 以後、完全に使用しないと判明したオブジェクトは Dispose() を呼び出して積極的に資源を解法することをお勧めします。
(Overrides _Mol..::..Dispose()()()().)
Public methodGetFunctionPtr
ロードした DLL 内に定義されている関数の名前 name を検索してその関数ハンドルを返します。 検索した関数を呼び出すためには、以下のようにします。 以下の例ではネイティブ DLL 内(UserNative.Dll)で NativeTest(string st, int v) が定義されているものとします。 NativeTest()関数の宣言方法等の詳細はサンプルプログラムや、 C のヘッダーファイル Mol.h を参照してください。
 コピー イメージコードをコピー
using System.Runtime.InteropServices;
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int NativeTest(string st, int v);
public void Test()
{
    NativeDll dll = new NativeDll("UserNative.Dll");
    IntPtr ip = dll.GetFunctionPtr("NativeTest");
    NativeTest func = (NativeTest)Marshal.GetDelegateForFunctionPointer(ip, typeof(NativeTest));
    int i = func("This is a test です", 2);
}

フィールド

  名前説明
Public fieldTag
ユーザが自由に設定・使用できるオブジェクトです。 Mol が内部で参照することはありません。
(Inherited from _Mol.)

プロパティ

  名前説明
Public propertyHandle
ロードした DLL のモジュールハンドルです。
Public propertyMolHandle
Mol.C++.dll(ネイティブDLL)と Mol.Net.Dll(.Net 用マネージドDLL)間の情報を管理するハンドル。 NativeDll クラスでユーザ作成のネイティブDLLを作成する場合等に利用できます。
(Inherited from _Mol.)
Public propertyMolType
Molオブジェクトの属性(_Mol..::..MOL_TYPE)。
(Inherited from _Mol.)
Public propertyPath
コンストラクタに指定された DLL のファイルパス名です。
Public propertyUserType
Molオブジェクトの追加属性(_Mol..::..USER_TYPE)。 例えば一般行列でも要素が対称なら、その属性を積極的にセットすることでソルバーは最適な手法を選択することができます。 当然ながら、間違った設定は間違った値や計算不能な状態に陥りますので注意して設定してください。
(Inherited from _Mol.)

参照