VB6 >>>>>>>> ..
[2ch|▼Menu]
263:デフォルトの名無しさん
07/07/15 18:20:36
VB6までのStringのByVal渡しは、深いコピーになる。
自信がなくてExcel 2003 VBA6で試してみたが確かにそうだ。
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)

Sub f(ByVal s As String)
    s = "bar"
'    Call MoveMemory(StrPtr(s), StrPtr("bar"), 6)
End Sub

Sub Test()
    Dim s As String
    s = "foo"
    f s
    MsgBox s
End Sub
262が指摘しているとおり、Declareで呼び出すときはまた別なので注意。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5323日前に更新/157 KB
担当:undef