VB.NETでMoveMemory

解決


初心者  2005-05-20 05:51:10  No: 121791

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-20 07:08:52  No: 121792

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


初心者  2005-05-20 19:52:57  No: 121793

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


Say  2005-05-20 21:08:38  No: 121794

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


さるべーじ  2005-05-20 21:42:26  No: 121795

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

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

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


初心者  2005-05-21 06:20:14  No: 121796

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


初心者  2005-05-21 06:24:45  No: 121797

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加