Я смотрю на этот кусок кода C из файла заголовка Microsoft wincrypt.h
//+-------------------------------------------------------------------------
// Attributes
//
// Where the Value's PATTR_BLOBs are in their encoded representation.
//--------------------------------------------------------------------------
// certenrolls_begin -- CRYPT_ATTRIBUTE
typedef struct _CRYPT_ATTRIBUTE {
LPSTR pszObjId;
DWORD cValue;
PCRYPT_ATTR_BLOB rgValue;
} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE;
typedef struct _CRYPT_ATTRIBUTES {
DWORD cAttr;
PCRYPT_ATTRIBUTE rgAttr;
} CRYPT_ATTRIBUTES, *PCRYPT_ATTRIBUTES;
// certenrolls_end
и я запускаю этот пример Как получить информацию из исполняемых файлов с подписью Authenticode . В коде видно, что к rgValue
и rgAttr
обращаются как к массивам, например,
pSignerInfo->AuthAttrs.rgAttr[n].rgValue[0].pbData,
pSignerInfo->AuthAttrs.rgAttr[n].rgValue[0].cbData,
Если бы я не видел пример, я бы никогда этого не понял. Это что-то специфичное для Windows или мое полное незнание о объявлениях структуры и типов в C?