ForeignPointerLookup[lib,fun]
ライブラリ lib の関数 fun にポインタを返す.
ForeignPointerLookup
ForeignPointerLookup[lib,fun]
ライブラリ lib の関数 fun にポインタを返す.
詳細
- ForeignPointerLookupはOpaqueRawPointerを返す.
- lib はFindLibraryによって解決される.
- lib はCと互換の動的ライブラリでなければならない.
- ForeignPointerLookupは,UnixタイプのシステムのdlsymおよびWindowsのGetProcAddressに似ている.
例題
すべて開く すべて閉じる例 (1)
addonePtr = ForeignPointerLookup["compilerDemoBase", "addone"]適切な型を指定してForeignFunctionをロードする:
addone = ForeignFunctionLoad[addonePtr, {"CInt"} -> "CInt"]addone[41]スコープ (1)
ForeignPointerLookupはFindLibraryを使ってライブラリを見付ける:
ForeignPointerLookup["compilerDemoBase", "addone"]FindLibraryでライブラリを見付けてForeignPointerLookupに渡すこともできる:
lib = FindLibrary["compilerDemoBase"];
ForeignPointerLookup[lib, "addone"]アプリケーション (1)
Needs["CCompilerDriver`"]
lib = CreateLibrary["
#include <stdlib.h>
#include \"dllexport.h\"
DLLEXPORT int* arrayMaker(int (*fun)(int)) {
int* out = (int*)malloc(sizeof(int) * 10);
for(int i = 0; i < 10; i++) {
out[i] = fun(i);
}
return out;
}
", "foreignPointerLookupTest"];arrayMaker = ForeignFunctionLoad[lib, "arrayMaker", {"OpaqueRawPointer"} -> "RawPointer"::["CInt"]]addone = ForeignPointerLookup["compilerDemoBase", "addone"]ptr = arrayMaker[addone]RawMemoryImport[ptr, {"List", 10}]特性と関係 (1)
addonePtr = ForeignPointerLookup["compilerDemoBase", "addone"]適切な型を指定してForeignFunctionをロードする:
ForeignFunctionLoad[addonePtr, {"CInt"} -> "CInt"]上記は単一のForeignFunctionLoadの呼出しによっても達成できる:
ForeignFunctionLoad["compilerDemoBase", "addone", {"CInt"} -> "CInt"]考えられる問題 (2)
ForeignPointerLookupは,ライブラリが見付からないときはFailureを返す:
ForeignPointerLookup["compilerDemoBase2", "addone"]関数ポインタがライブラリ内に見付からなけらばForeignPointerLookupはFailureを返す:
ForeignPointerLookup["compilerDemoBase", "addtwo"]テクニカルノート
-
▪
- 外部関数
関連するガイド
-
▪
- FFI
テキスト
Wolfram Research (2023), ForeignPointerLookup, Wolfram言語関数, https://reference.wolfram.com/language/ref/ForeignPointerLookup.html.
CMS
Wolfram Language. 2023. "ForeignPointerLookup." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ForeignPointerLookup.html.
APA
Wolfram Language. (2023). ForeignPointerLookup. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ForeignPointerLookup.html
BibTeX
@misc{reference.wolfram_2026_foreignpointerlookup, author="Wolfram Research", title="{ForeignPointerLookup}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/ForeignPointerLookup.html}", note=[Accessed: 04-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_foreignpointerlookup, organization={Wolfram Research}, title={ForeignPointerLookup}, year={2023}, url={https://reference.wolfram.com/language/ref/ForeignPointerLookup.html}, note=[Accessed: 04-November-2026]}