|
SOLUTIONS
|
NETLINK シンボル
DefineDLLFunction
DefineDLLFunction["func", "dll", rtype, atypes]
指定されたアンマネージドのDLL dll で,引数の型 atypes と戻り型 rtype を持つ指定された関数 func を呼び出す Mathematica 関数を返す.
DefineDLLFunction["declaration"]
C#構文の'extern'関数宣言を書けるようにする.パラメータのそれぞれに対する特定の"MarshalAs"属性等のDefineDLLFunctionへのオプションを使ってでは利用できない機能を必要とするような複雑な関数宣言を書かなければならない場合にこれを使うとよい.
詳細詳細
- DefineDLLFunctionを使うためには,まず.NET/Link をロードしなくてはならない.それにはNeeds["NETLink`"]を実行する必要がある.
- 以下のオプションを与えることができる:
-
CallingConvention Automatic DLL関数で予期される呼出しの慣例(可能な値には"StdCall","CDecl", "ThisCall",Automaticがある) MarshalStringsAs "ANSI" 文字列の引数(char*, string,String)がDLL関数からどのようにマーシャルしたりされたりすべきか(可能な値には"ANSI","Unicode",Automaticがある) ReferencedAssemblies Automatic 宣言に参照されるアセンブリの名前のリスト - atypes 引数は,引数の型指定のリストであり,関数が引数を取らない場合には削除してもよい.
- 引数の型と戻り型の指定は文字列,あるいは稀にNETType式である.
- 文字列は,Cスタイルの構文(
等),C#構文(
),Visual Basic .NET構文(
)のいずれかで与えられるか,あるいは多くのWindows APIの型(
,
,
等)を使って与えられることができる. - 優先権は型の名前のC解釈に与えられるので,
および
は,C#ではなくCにおける意味(それぞれが1と4バイト)を持つ. - DLLが標準の場所(標準の場所とはシステム上のディレクトリPATHあるいは$InstallationDirectoryAddOns\Applications\SomeApp\DLL等 Mathematica アプリケーションディレクトリ内のDLLサブディレクトリである)にない場合には,完全なパス名を与える必要がある.
Mathematica 9 is now available!
New to Mathematica?
Find your learning path »
Have a question?
Ask support »
