CWinApp::GetProfileBinary
Эта функция-член вызывается с целью извлечения двоичные данные из записи в указанный раздел реестра или ini-файле приложения.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes
);
Параметры
lpszSection
Указывает на null- завершенной строке, определяющая раздел, содержащий запись.lpszEntry
Указывает на null- завершенной строке, которая содержит запись, значение которой требуется извлечь.ppData
Указатель на указатель, который будет получать адрес данных.pBytes
Указывает на UINT, которое обращается размер данных (в байтах).
Возвращаемое значение
Ненулевой, если успешно; в противном случае – значение 0.
Заметки
Эта функция-член не учитывают регистр, поэтому строки в lpszSection и lpszEntry параметры могут отличаться в случае.
Примечание
GetProfileBinary выделяет буфер и возвращает его адрес в *ppData.Вызывающий объект отвечает за освободить буфер с помощью delete [].
Примечание по безопасности |
---|
Данные, возвращаемые этой функцией не обязательно является завершены NULL, а вызывающий объект должен выполнить проверку.Дополнительные сведения см. в разделе Избежать переполнения буфера. |
Пример
CWinApp* pApp = AfxGetApp();
const TCHAR* pszKey = _T("My Section");
struct complex {
double re, im;
} myData = { 1.4142, -0.5 };
// Write the information to the registry.
pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData,
sizeof(myData));
// Read the information from the registry.
complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData,
&n);
ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer
Для дополнительного пример см. в разделе CWinApp::WriteProfileBinary.
Требования
Header: afxwin.h