VB.NETでMoveMemory

解決


初心者  2005-05-19 20:51:10  No: 121791  IP: [192.*.*.*]

Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Dest As String, ByVal Source As Integer, ByVal length As Integer)

のAPIで
Dim  nAddress As Integer
Dim buffer As String
Call MoveMemory(buffer, nAddress, FileLength)
とするとメモリの内容をbufferにコピーできましたが
bufferの内容をnAddressに書き出すにはどうしたら
よいのでしょうか?

編集 削除
Say  2005-05-19 22:08:52  No: 121792  IP: [192.*.*.*]

APIのパラメータの意味は不変なので
(コピー先アドレス,コピー元アドレス,サイズ)、
一番手っ取り早いのは、宣言をちょいといじって、
パラメータの型を自分の望みにあわせた上で利用することでしょう。
今の宣言も必要なら、別名でもう1つ宣言してもいいし。

編集 削除
初心者  2005-05-20 10:52:57  No: 121793  IP: [192.*.*.*]

ありがとうございます
(コピー先アドレス,コピー元アドレス,サイズ)
ですね。
ところでどうしてもよくわからないのは
VB.NETでの「変数のアドレス」の表現です(Cのポインタ変数)。
「ByVal Dest As String,」は「Dest」のアドレスを意味するのでしょうか。

編集 削除
Say  2005-05-20 12:08:38  No: 121794  IP: [192.*.*.*]

>ところでどうしてもよくわからないのは
>VB.NETでの「変数のアドレス」の表現です(Cのポインタ変数)。
>「ByVal Dest As String,」は「Dest」のアドレスを意味するのでしょうか。
それを知らなくても、VBの中の世界ではこまりません。
先に「初心者」を名乗らない努力をすべきでは?

編集 削除
さるべーじ  2005-05-20 12:42:26  No: 121795  IP: [192.*.*.*]

> ところでどうしてもよくわからないのは

VB6ということであれば、英語ですがこんな説明もあります。
図だけ見ててもなんとなくわかりますよ。

    http://www.romanpress.com/Articles/Strings_R/Strings.htm

編集 削除
初心者  2005-05-20 21:20:14  No: 121796  IP: [192.*.*.*]

Sayさん、さるべーじさんありがとうございました。
貴重な資料の紹介ありがとうございました。
http://www.romanpress.com/Articles/Strings_R/Strings.htm
で勉強させていただきます。

編集 削除
初心者  2005-05-20 21:24:45  No: 121797  IP: [192.*.*.*]

ありがとうございました。

編集 削除