Тут где-то была тема про выравнивение полей в Си++. Очень на это похоже.
По поводу True - в VB True равно -1, в том, что ты получаешь должно быть просто не 0, но, скорее всего, ровно +1. Значение должно лежать в 0-м байте.
typedef struct _PARTITION_INFORMATION_GPT {
GUID PartitionType;
GUID PartitionId;
DWORD64 Attributes;
WCHAR Name[36];
} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type
Private Type PARTITION_INFORMATION_GPT
PartitionType As GUID '8 байт
PartitionId As GUID '8 байт
Attributes As LARGE_INTEGER '8 байт
mName(71) As Byte '72 байта
End Type
sosed213 писал(а):Я так понял размер каждой переменной должен быть кратным 1,2,4,8 или 16 ? Так?
sosed213 писал(а):Я делаю так:
sosed213 писал(а):И как тут выравнивание структур делается? За счет выбранных типов?
Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 47