Как скопировать участок памяти в переменную типа Variant? - VB
Формулировка задачи:
Стоит ли игра свеч?
Так естественно не получается, ибо особая структура контейнера.
Для чего это? Вообще, делаю некий аналог VB-шной функции Get и иже с ними на WinAPI.
Т.е. вне зависимости от типа данных переменной, переданной функции Get, ей присваивается значение из файла.
Выглядит это так (но хочется упростить, если это возможно):
Решение задачи: «Как скопировать участок памяти в переменную типа Variant?»
textual
Листинг программы
Option Explicit Private Declare Function memcpy Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal length As Long) As Long Private Sub Form_Load() Dim b(1) As Byte b(0) = 3 b(1) = 4 Debug.Print "Addr b(0)=" & Hex(VarPtr(b(0))) foo b End Sub Function foo(v As Variant) Dim ptr As Long Debug.Print "Addr v: " & Hex(VarPtr(v)) memcpy ptr, ByVal VarPtr(v) + 8, 4& Debug.Print "Addr ptr: " & Hex(ptr) Debug.Print "Type: " & Hex(VarType(v)) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д