Столкнулся с проблемой некорректного копирования? данных. Эффект наблюдается только после компиляции проекта.
Имеется:
— обычный модуль с кучей функций и процедур;
— в модуле объявлен UDT;
- Код: Выделить всё
Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (ByVal Dest As Long, ByVal Source As Long, ByVal Length As Long)
Private Type INDEX_STATISTICS
statKeys As Long
statMaxLen As Long
statMemUsage As Long
statBytesPerKey As Single
statTblUsage As Long
End Type
Private StatInfo As INDEX_STATISTICS
— на вызывающей стороне (форме) тоже объявлен этот UDT;
— из формы идёт обращение к функции получения статистики;
— эта функция возвращает указатель на заполненый UDT (Module1.Statistics = VarPtr(StatInfo));
— на вызывающей стороне, функцией CopyMemory, данные копируются в такой же UDT (пробовал объявление RtlMoveMomory, но оно и в режиме отладки даёт «пургу»);
— поля UDT, с применением форматирования строки (Format()), распихиваются по лейблам.
Данные проверялись — на стороне функции Statistics корректные. Не могу понять, где зарыт косяк?