レジストリにエントリデータを読み込むプログラムを作成しているのですが、DWORD型の値が正
しく読み込まれません。
以下のソースを使っているのですが、間違いはありますか。
どなたかおしえてもらえないでしょうか?宜しくお願いします。
ちなみにDWORD型の値はすべて『0x012c53f4(19682292)』になってしまいます。
BOOL CBackupRegApp::GetEntryData(HKEY hKey, CString strEntryName, CString
strData, CString strType )
{
DWORD dwType; // レジストリエントリのデータ型
long lRes;
if( strType == REG_SZ){
dwType = 1;
// データと値の入力
lRes = RegSetValueEx( hKey, strEntryName, 0, dwType, (BYTE *)
(LPCTSTR)strData, strData.GetLength() + 1 );
}else if( strType == REG_BINARY){
dwType = 3;
// データと値の入力
lRes = RegSetValueEx( hKey, strEntryName, 0, dwType, (BYTE *)
&strData, sizeof(strData));
}else if( strType == REG_DWORD){
dwType = 4;
// データと値の入力
lRes = RegSetValueEx( hKey, strEntryName, 0, dwType, (BYTE *)
&strData, sizeof(strData));
}
return TRUE;
}
> lRes = RegSetValueEx( hKey, strEntryName, 0, dwType, (BYTE *)
> &strData, sizeof(strData));
DWORD型のデータを書き込まずに、
CString型のデータを書き込んでいるためです。
>> RegSetValueEx( hKey, strEntryName, 0, dwType, (BYTE *)&strData, sizeof
(strData));
CStringオブジェクトを書き込んでますけど・・・?
ありがとうございました。
解決いたしました。
初心者な者で気づきませんで、申し訳ございませんした。
デバッガを使うことを覚えましょう。
デバッグを行うことは大変ですが
デバッガを使うことは初心者にとっても
難解なことではありませんので。
基本的にはF9でブレークポイントをはって
F5でデバッグ実行。