ページ 11

AB5.005での可変個引数の関数について

Posted: 2011年4月21日(木) 08:10
by tagenkanで登録した
初めて投稿します。

AB5.005で次のプログラムをコンパイルしようとするとエラーでとまってしまいます。

#console
Declare Function printf cdecl Lib "msvcrt.dll" (format As *Char, ...) As Long
printf(Ex"Hello world !!\n")

AB4.24ではコンパイルが通って普通に「Hello world !!」が表示されます。
AB5.005でもprintfでダミーの引数を後ろにもうひとつつけて

#console
Declare Function printf cdecl Lib "msvcrt.dll" (format As *Char, ...) As Long
printf(Ex"Hello world !!\n",0)

とすればうまくいきます。
どうやらAB5.005 では可変個引数を表す...の部分に0個しか引数が渡されないとコンパイルできないようです。

Re: AB5.005での可変個引数の関数について

Posted: 2011年4月21日(木) 11:15
by たかせ
実はAB5CP4から上記の現象が発生しています。
ちなみに2007年7月6日に類似したことが投稿されていました。
Exec
2013年8月29日修正