4

ここの 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ブロック後も同じ値が保持されます。

4

2 に答える 2