Портал разработчиков САПР Пятница, 22.11.2024, 13:53
Приветствую Вас Гость | RSS
Главная страница | Каталог статей | Регистрация | Вход
» Меню сайта

» Категории каталога
Примеры использования функций [1]
здесь собраны примеры использования АПИ функций

Начало » Статьи » Примеры кода Win32API » Примеры использования функций

CopyMemory
поместите на форму одну кнопку и этот код:

Option Explicit
Dim m(40) As CMLA2PDB_UserInfo


Private Type CMLA2PDB_UserInfo
NickName As String * 16 '0
PlayerName As String * 16 '1
Phone As String * 16 '2
Age As Integer '3
Level As Integer '4
Class As String * 32 '5
Helmet As String * 32 '6
Upper As String * 32 '7
Lower As String * 32 '8
Gloves As String * 32 '9
Boots As String * 32 '10
LeftHand As String * 32 '11
RightHand As String * 32 '12
Head As String * 32 '13
Necklare As String * 32 '14
Earring1 As String * 32 '15
Earring2 As String * 32 '16
Ring1 As String * 32 '17
Ring2 As String * 32 '18
Future As String * 526 '19
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, _
pSrc As Any, ByVal ByteLen As Long)


Private Sub ReadDB(tInfo() As CMLA2PDB_UserInfo)

Dim bInfo(40) As CMLA2PDB_UserInfo

CopyMemory ByVal VarPtr(bInfo(0)), ByVal VarPtr(tInfo(0)), Len(bInfo(0)) * CLng(40)

MsgBox bInfo(0).Age
'проверяем
End Sub
Private Sub Command1_Click()
m(0).Age = 40
ReadDB m
End Sub
Все вопросы, возникшие при чтении этой статьи, вы можете задать на нашем форуме: www.sham.clan.su/forum
Категория: Примеры использования функций | Добавил: sham (25.07.2007)
Просмотров: 3028 | Комментарии: 2 | Рейтинг: 0.0 |

Всего комментариев: 2
2 Mukipr  
0
lipitor online buy <a href="https://lipiws.top/">lipitor 10mg without prescription</a> atorvastatin 20mg cost

1 Nonamer  
0
Многоуважаемый Sham!
Хочу задать вам небольшой вопрос по CopyMemory.
Есть следующие типы данных:

Public Type STime
tYear As Integer ' Год
tMon As Byte ' Месяц
tDay As Byte ' День
tHour As Byte ' Часы
tMin As Byte ' Минуты
tSec As Byte ' Секунды
End Type

' номер и время
Public Type ConNuSTime
tNu As Byte ' Номер
tTm As STime ' Время
End Type

Так вот. При копировании переменной mVar с типом данных ConNuSTime в байтовый массив D
...
CopyMemory D(0), mVar, Len(mVar)
...
tNu занимает два байта а не один!
Если вы станкивались с данной проблемой, пожалуйста напишите мне ответ на nonsoft@mail.ru

Зараннее благодарен.
С уважением Nonsoft.

Ответ: From sham To Nonamer
Quote

tNu занимает два байта а не один!

я проверил, ты просто неправильно посчитал.

Имя *:
Email *:
Код *:
» Форма входа

» Поиск по каталогу

» Друзья сайта


Copyright MyCorp © 2006
Сайт управляется системой uCoz