構造体ポインタと関数ポインタ

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
高信期

構造体ポインタと関数ポインタ

#1 投稿記事 by 高信期 »

構造体のメンバとした関数ポインタを構造体ポインタから呼び出そうとすると、
「文法が間違っています」とエラー表示が出ます。

コード: 全て選択

#prompt
TypeDef EventProc = *Sub(Index As Long)
Type EVENTSTRUCT
  Event As EventProc
End Type

Sub TestProc(Index As Long)
  Print Str$(Index)
End Sub

Sub Test()
  Dim A As EVENTSTRUCT, C As *EVENTSTRUCT
  A.Event = AddressOf(TestProc)
  C = VarPtr(A)
  C->Event(1)
End Sub
Test()
マティ
記事: 161
登録日時: 2005年8月23日(火) 00:15
お住まい: 沖縄県
連絡する:

#2 投稿記事 by マティ »

ポインターにするとコンパイル出来ないようですね!
下記のように書き換えると動作するので、コンパイラ側のエラーチェックミスと思われます。
山本様いかがでしょうか?

コード: 全て選択


Sub Test()
  Dim A As EVENTSTRUCT, C As *EVENTSTRUCT
  C = VarPtr(A)
  C->Event = AddressOf(TestProc)
  A.Event(1)
End Sub
PS.こんな使い方が存在したなんて、ActiveBasicは奥が深いですね~!
山本
Site Admin
記事: 535
登録日時: 2005年5月30日(月) 15:08
連絡する:

#3 投稿記事 by 山本 »

ご報告ありがとうございます。
原因を突き止めることが出来ましたので、次回のバージョンアップで修正します。
返信する