ab.com コミュニティ
https://www.activebasic.com/forum/

IntegerとLongの構造体
https://www.activebasic.com/forum/viewtopic.php?t=1589
ページ 11

作成者:  初学者 [ 2006年10月03日(火) 02:22 ]
記事の件名:  IntegerとLongの構造体

v4.24(WindowsMe)

IntegerとLongの構造体を定義して、たとえば、フォームにボタンを配置し、下のようにした場合、Longの方の値が正しくなりません。
初学者なのでプログラムが間違っているかもしれず、また、前のバージョンでのものですが、一応報告しておきます。
コード:
type TESTD2
	a as Integer
	b as Long
End Type

Sub MainWnd_CommandButton1_Click()
	Dim test2 = [3,11] as TESTD2
	Stest(VarPtr(test2))
End Sub

Sub Stest(t as *TESTD2)
	Dim n as String
	
	n = Str$(t->b)
	MessageBox(hMainWnd,StrPtr(n),0,0)
End Sub

作成者:  7 [ 2006年10月03日(火) 17:07 ]
記事の件名:  Re: IntegerとLongの構造体

コード:
Type TESTD2
	a as Integer
	b as Long
End Type

Sub MainWnd_CommandButton1_Click()
	Dim test2 = [3,11] as TESTD2

	Debug

	Stest(VarPtr(test2))
End Sub
こうしてみた所、初期化代入(?)の時点で値が正しく代入されてないことが分かります。(Ver.5.0 CP3で確認)

Integer型で正しく代入されないならWord型も代入されないんじゃないかと思ったらそうでした。
コード:
Type TESTD2
	a as Word
	b as Long
End Type

Sub MainWnd_CommandButton1_Click()
	Dim test2 = [3,11] as TESTD2

	Debug

	Stest(VarPtr(test2))
End Sub
型のサイズが問題なんでしょうかね。

作成者:  山本 [ 2006年10月05日(木) 17:24 ]
記事の件名: 

ご報告ありがとうございます。

7さんの仰るとおり、メンバオフセットの計算モジュールの不具合により、型サイズが正常に判定されておりませんでした。

次回のバージョンアップで修正いたしますので、今しばらくお待ちください。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/