ページ 11

RegQueryValueExでアクセス違反

Posted: 2010年10月24日(日) 23:04
by 水波形
ご無沙汰しております。

今回、WindowsのProductIDを取得しようとして、以下のコードを書きました。 初めてのレジストリの操作でどきどきしながらデバッグコンパイル。

どうやら、

コード: 全て選択

RegQueryValueEx(hKey,"ProductId",&0,REG_SZ,p_id,re)
ここで、アクセス違反が起きているようです。

しかし、どうしてかが分かりません。

すいませんが、ご存知の方がいらっしゃいましたら、ご教授ください。
お願いします。

Posted: 2010年10月25日(月) 02:24
by HSABP
わからないわからないではなくまずポインタの勉強を先にしてリファレンスをよく読む
検索する。Cのサンプルでもあたること。


正解を書いてもよいのだが力にならないのでヒントだけ提示する。

pathにはmallocしてもその後リテラルを代入しているのだから
これはしてはいけないこと、後のfreeで問題になる

変数reはDWord型にしバッファサイズを代入し
RegQueryValueExの第6引数にポインタを渡すこと

RegQueryValueExの大4引数は型が戻ってくるのでありこちらが指定してはいけない