ByteStrを引数に取るプロシージャを作成し,それを呼び出す際,
引数の与え方によってエラーが発生してしまいます。
下記のプログラムサンプルをご覧ください。
引数としてStrPtr()関数を直接使用すると,「無効な識別子」と
叱られます。
でも,一度BytePtr型変数に代入してからだと叱られません。
何か記述方法を間違っているのでしょうか?
(間違っているとしたら,プロシージャの宣言部分だろうと思う
のですが...)
コード: 全て選択
#console
Main()
Sub PrintString(ByRef myString As BytePtr)
MsgBox 0, myString, "Print String"
End Sub
Sub Main ()
Dim myString As String
myString = ZeroString(100)
lstrcpy(StrPtr(myString), "Message")
'下記記述だと「StrPtr(myString)が無効な識別子」と叱られる
PrintString(StrPtr(myString))
'下記記述だとOK。なぜ?
Dim myStringPtr As BytePtr
myStringPtr = StrPtr(myString)
PrintString(myStringPtr)
End Sub