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