VB6 >>>>>>>>>> VB.NETat TECH
VB6 >>>>>>>>>> VB.NET - 暇つぶし2ch263:デフォルトの名無しさん
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で呼び出すときはまた別なので注意。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch