次の方法で共有


CWinApp::GetProfileBinary

更新 : 2007 年 11 月

アプリケーションのレジストリまたは .INI ファイルの指定のセクション内のエントリからバイナリ データを取得します。

BOOL GetProfileBinary(
   LPCTSTR lpszSection,
   LPCTSTR lpszEntry,
   LPBYTE* ppData,
   UINT* pBytes 
);

パラメータ

  • lpszSection
    エントリがあるセクションを指定する NULL で終わる文字列へのポインタ。

  • lpszEntry
    値を取得するエントリを指定する NULL で終わる文字列へのポインタ。

  • ppData
    データのアドレスを受け取るポインタへのポインタ。

  • pBytes
    データのサイズ (バイト数) を受け取る UINT へのポインタ。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバ関数は、大文字と小文字を区別しないので、lpszSection パラメータと lpszEntry パラメータの文字列は大文字、小文字のどちらでもかまいません。

60e44e56.alert_note(ja-jp,VS.90).gifメモ :

GetProfileBinary は、バッファを割り当て、そのアドレスを *ppData に返します。バッファの解放は、呼び出し元が delete [] を使って行います。

60e44e56.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

この関数が返すデータは、NULL で終わるデータとは限らないため、呼び出し元で検証を行う必要があります。詳細については、「Avoiding Buffer Overruns」を参照してください。

使用例

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」を参照してください。

スマート デバイス開発者のためのメモ

CWinApp::SetRegistryKey を使用したレジストリに基づくバージョンのみが、Windows CE ベースのプロジェクトでサポートされます。

必要条件

ヘッダー : afxwin.h

参照

参照

CWinApp クラス

階層図

CWinApp::GetProfileInt

CWinApp::GetProfileString

その他の技術情報

CWinApp のメンバ