ForeignFunctionLoad
ForeignFunctionLoad[lib,fun,{argtype1,argtype2,…}rettype]
指定された引数と出力型でライブラリ lib から関数 fun をロードする.
ForeignFunctionLoad[ptr,{argtype1,argtype2,…}rettype]
関数のポインタ ptr から外部関数を作成する.
詳細
- ForeignFunctionLoadはForeignFunctionオブジェクトを返す.
- lib はFindLibraryで解決される.
- lib はC互換の動的ライブラリでなければならない.
- サポートされる型は,一般に,Wolfram Compilerがサポートするものと一致する.
- 次は,使用可能な引数と戻り値の型および対応するCの型である.
-
"UnsignedInteger8" uint8_t 符号なし8ビット整数 "Integer8" int8_t 符号あり8ビット整数 "UnsignedInteger16" uint16_t 符号なし16ビット整数 "Integer16" int16_t 符号あり16ビット整数 "UnsignedInteger32" uint32_t 符号なし32ビット整数 "Integer32" int32_t 符号あり32ビット整数 "UnsignedInteger64" uint64_t 符号なし64ビット整数 "Integer64" int64_t 符号あり64ビット整数 "CUnsignedChar" unsigned char C互換の符号なしchar型 "CSignedChar" signed char C互換の符号ありchar型 "CUnsignedShort" unsigned short C互換の符号なしshort型 "CShort" short C互換のshort型 "CUnsignedInt" unsigned int C互換の符号なしint型 "CInt" int C互換のint型 "CUnsignedLong" unsigned long C互換の符号なしlong型 "CLong" long C互換のlong型 "CSizeT" size_t C互換のsize_t "CFloat" float C互換のfloat型 "CDouble" double C互換のdouble型 "OpaqueRawPointer" void* 不透明なポインタ "RawPointer"::[t] t* 型付きポインタ {ty1,ty2,…} struct {ty1 f1; ty2 f2; …} struct型またはproduct型 "Void" void 出力なし(入力型のみ) - 構造体あるいは製品の型も"ListTuple"::[ty1,ty2, …]として書くことができる.
- ForeignFunctionLoad[ptr,…]の ptr は,ライブラリの有効な関数を指すOpaqueRawPointerでなければならない.
例題
すべて開くすべて閉じるスコープ (2)
ForeignFunctionLoadはFindLibraryを使ってライブラリを見付ける:
FindLibraryでライブラリを見付け,それをForeignFunctionLoadに渡すこともできる:
アプリケーション (2)
特性と関係 (1)
ForeignFunctionLoadは,一般に,カスタムリンクをコンパイルするよりも高速にライブラリへの呼び出し可能なリンクを作成する:
考えられる問題 (3)
ライブラリが存在しない場合はFailureが返される:
関数が存在しない場合はFailureが返される:
型がサポートされないものの場合,ForeignFunctionLoadは$Failedを返す:
テキスト
Wolfram Research (2023), ForeignFunctionLoad, Wolfram言語関数, https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html.
CMS
Wolfram Language. 2023. "ForeignFunctionLoad." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html.
APA
Wolfram Language. (2023). ForeignFunctionLoad. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ForeignFunctionLoad.html