ByRef と BytePtr の関数について
Posted: 2006年9月20日(水) 18:44
こんにちは。
プログラミング掲示板にするか迷いましたが、こちらに。よく理解しているか分からない者の報告ですが、今回は ByRef と BytePtr の関数についてです。
Sub TestByRef(ByRef ByteLine As BytePtr)
End Sub ...①
Dim lpCommandLine As BytePtr
Dim lpCommandLine2 As BytePtr
Dim W32FD As WIN32_FIND_DATA
Dim lpW32FD As *WIN32_FIND_DATA
lpW32FD = VarPtr(W32FD)
ZeroMemory(lpW32FD, SizeOf(WIN32_FIND_DATA))
lpCommandLine2 = VarPtr(lpCommandLine[数字])
TestByRef(lpCommandLine2) ...②
TestByRef(VarPtr(lpCommandLine[数字])) ...③
lpCommandLine2 = lpW32FD->cFileName
TestByRef(lpCommandLine2) ...④
TestByRef(lpW32FD->cFileName) ...⑤
lpCommandLine2 = VarPtr(W32FD.cFileName)
TestByRef(lpCommandLine2) ...⑥
TestByRef(VarPtr(W32FD.cFileName)) ...⑦
TestByRef(VarPtr(W32FD.cFileName[数字])) ...⑧
②、④、⑥ は問題ありませんが、③、⑦、⑧ は「無効な識別子です」と出、⑤ は型が違いますと出ます。① を Function にしても同様です。
③、⑤、⑦、⑧ が通らないは如何なのでしょうか。
プログラミング掲示板にするか迷いましたが、こちらに。よく理解しているか分からない者の報告ですが、今回は ByRef と BytePtr の関数についてです。
Sub TestByRef(ByRef ByteLine As BytePtr)
End Sub ...①
Dim lpCommandLine As BytePtr
Dim lpCommandLine2 As BytePtr
Dim W32FD As WIN32_FIND_DATA
Dim lpW32FD As *WIN32_FIND_DATA
lpW32FD = VarPtr(W32FD)
ZeroMemory(lpW32FD, SizeOf(WIN32_FIND_DATA))
lpCommandLine2 = VarPtr(lpCommandLine[数字])
TestByRef(lpCommandLine2) ...②
TestByRef(VarPtr(lpCommandLine[数字])) ...③
lpCommandLine2 = lpW32FD->cFileName
TestByRef(lpCommandLine2) ...④
TestByRef(lpW32FD->cFileName) ...⑤
lpCommandLine2 = VarPtr(W32FD.cFileName)
TestByRef(lpCommandLine2) ...⑥
TestByRef(VarPtr(W32FD.cFileName)) ...⑦
TestByRef(VarPtr(W32FD.cFileName[数字])) ...⑧
②、④、⑥ は問題ありませんが、③、⑦、⑧ は「無効な識別子です」と出、⑤ は型が違いますと出ます。① を Function にしても同様です。
③、⑤、⑦、⑧ が通らないは如何なのでしょうか。