バイナリデータの取得について – プログラミング – Home

バイナリデータの取得について
 
通知
すべてクリア

バイナリデータの取得について


Cチャン
 Cチャン
(@Cチャン)
ゲスト
結合: 22年前
投稿: 1
Topic starter  

はじめましてCチャンと申します。よろしくお願いします。

現在、レジストリの情報をtxtファイルに取得するプログラムをVC++で
作成してます。
しかし、バイナリデータ(例:『12 13 14 15 16』)をこのまま取得することができませ
ん。
以下にプログラムの一部分と出力結果を抜粋します。(strTXTに格納した後でファイルに
書き出す方法を使っています。)
どなたかバイナリデータを取得する良きアドバイスをお願いします。

【ソース】
HKEY OpenSubKey;
char EntryName[MAX_PATH_2]; // サブキー名を格納するバッファ
DWORD dwSize = MAX_PATH_2; // バッファーサイズ
DWORD dwType; // データ型・バッファー
CString strMsg; // データ値
void *BIData;
long lRes;

case REG_BINARY: // バイナリ
lRes = RegQueryValueEx( OpenSubKey, EntryName, NULL, &dwType, (LPBYTE)&BIData,
&dwSize );
if ( lRes== ERROR_SUCCESS ){
strMsg.Format(%u, (LPBYTE)&BIData);
CString strTXT = strMsg;
break;
}

【出力結果】
1243016


引用解決済
トピックタグ
マルチポスト
 マルチポスト
(@マルチポスト)
ゲスト
結合: 23年前
投稿: 7
 

使用上の注意を読んでいますか?マルチポストはやめてください。
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200307/03070041.txt


返信引用
euro2004
 euro2004
(@euro2004)
ゲスト
結合: 23年前
投稿: 37
 

ぱっと見で。
BIDataの領域は確保できてますか?
またMSDNを見ると
LONG RegQueryValueEx(
HKEY hKey, // キーのハンドル
LPCTSTR lpValueName, // レジストリエントリ名
LPDWORD lpReserved, // 予約済み
LPDWORD lpType, // データ型が格納されるバッファ
LPBYTE lpData, // データが格納されるバッファ
LPDWORD lpcbData // データバッファのサイズ
);
とありますがCチャンさんは
(LPBYTE)&BIData,
としてますが
(LPBYTE)BIData,
じゃないでしょうか?

#ちょっとした疑問なのですがなぜBIDataをvoid*で宣言してるのでしょう。


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 23年前
投稿: 196
 

コードが抜粋過ぎてよく分からないけど、RegQueryValueEx() する前に dwType に値を
設定していますか?


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

> 渋木宏明さん
設定する必要ないんじゃないですか?
そこに指定したデータ型の値を取得するわけではないですから。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました