by Pizz » 2006年2月07日(火) 01:02
私も同じ現象でハマりました。
HELPに載っているまんまのソースですが、以下をビルドして実行すると、4.13では正常動作しますが、4.20ではアクセス違反になってしまいます。
コード: 全て選択
#N88BASIC
'関数ポインタ型を定義
TypeDef PSHOWMSG = *Sub(buffer As *Byte)
Sub ShowMsg(buffer As *Byte)
Print MakeStr(buffer)
End Sub
'関数ポインタ型の変数を定義
Dim pShowMsg As PSHOWMSG
'ShowMsgの開始アドレスを取得し、pShowMsgに格納
pShowMsg=AddressOf(ShowMsg)
'関数ポインタをもとに、関数を呼び出す
pShowMsg("Hello World!")
Win2000sp4 / WinXPpro sp2(32bit)
どちらでも再現しています。
私も同じ現象でハマりました。
HELPに載っているまんまのソースですが、以下をビルドして実行すると、4.13では正常動作しますが、4.20ではアクセス違反になってしまいます。
[code]#N88BASIC
'関数ポインタ型を定義
TypeDef PSHOWMSG = *Sub(buffer As *Byte)
Sub ShowMsg(buffer As *Byte)
Print MakeStr(buffer)
End Sub
'関数ポインタ型の変数を定義
Dim pShowMsg As PSHOWMSG
'ShowMsgの開始アドレスを取得し、pShowMsgに格納
pShowMsg=AddressOf(ShowMsg)
'関数ポインタをもとに、関数を呼び出す
pShowMsg("Hello World!")
[/code]Win2000sp4 / WinXPpro sp2(32bit)
どちらでも再現しています。