ここの Red ドキュメントの例に従っています: http://static.red-lang.org/red-system-specs.html#section-14
これは私のコードです:
Red []
#import [
"SDL2.dll" cdecl [
sdl_init: "SDL_Init" [
flags [integer!]
return: [integer!]
]
]
]
rc: sdl_init 0
これを Red インタープリターで実行すると、最後の行に次のエラーが表示されます。
*** Error: word has no value!
*** Error: word has no value!
でコンパイルするとred -c
、より有用なエラーが発生します。
*** Compilation Error: undefined word sdl_init
*** in file: %/C/temp/red/sdl.red
*** near: [sdl_init 0]
明らかにsdl_init
、ライブラリのインポート中に定義されたものは、最後の行に到達するまでに範囲外です。
それでは、ドキュメントの例をどのように説明しますか? sdl_init
インポート前に任意の値に初期化すると、#import
ブロック後も同じ値が保持されます。