teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

編集

2018/04/20 11:57

投稿

mercurian-teto
mercurian-teto

スコア75

title CHANGED
File without changes
body CHANGED
@@ -375,4 +375,14 @@
375
375
  ```
376
376
 
377
377
  またもやエラーが発生しました。
378
- 公式の関数の定義通りになっていないのでしょうか。
378
+ 公式の関数の定義通りになっていないのでしょうか。
379
+
380
+
381
+ #リンクのつけ方
382
+ ```
383
+ //プロジェクト→[プログラム名]のプロパティ→リンカー→入力→追加の依存ファイル
384
+ でlibファイルを追加することができました。
385
+
386
+
387
+
388
+ ```

1

追記

2018/04/20 11:57

投稿

mercurian-teto
mercurian-teto

スコア75

title CHANGED
File without changes
body CHANGED
@@ -318,4 +318,61 @@
318
318
  RegCloseKey(hKey);
319
319
  }
320
320
 
321
- ```
321
+ ```
322
+
323
+ ###追記1
324
+ 先ほどの[レジストリ編集](http://nienie.com/~masapico/api_SHGetValue.html)のリンク先にあるSHGetValueと、[MicroSoftのSHGetvalue](https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb773495(v=vs.85).aspx)と型が違っていたので、
325
+ 関数が違うかと思い、
326
+ ```
327
+ DWORD SHGetValue(
328
+ HKEY hKey,
329
+ LPCTSTR SubKeyName,
330
+ LPCTSTR ValueName,
331
+ LPDWORD ValueType,
332
+ LPVOID Value,
333
+ LPDWORD ValueSize);
334
+ ```
335
+
336
+
337
+
338
+ ```
339
+ DWORD RegestryCheck(
340
+ HKEY hKey,
341
+ LPCTSTR SubKeyName,
342
+ LPCTSTR ValueName,
343
+ LPDWORD ValueType,
344
+ LPVOID Value,
345
+ LPDWORD ValueSize);
346
+ ```
347
+
348
+ に変えていました。
349
+ 回答者方々のご指摘通り、 とりあえず、
350
+ RegestryCheckをSHGetValueに変換し、
351
+
352
+ Shlwapi.hをインクルードしたのですが、
353
+
354
+ またエラーが表示されました。
355
+ ```
356
+ エラー LNK2019 未解決の外部シンボル __imp__SHGetValueW@24 が関数 "bool __cdecl GetValue(void)"
357
+ (?GetValue@@YA_NXZ) で参照されました。
358
+ ```
359
+
360
+ 型がmicrosoftと個人サイトに書いてあったレジストリの関数の宣言の
361
+
362
+ SHGetValueの型が違っていたので、変更しました。(DWORD→LSTATUS)
363
+ しかし、
364
+ ```
365
+
366
+ 1.
367
+ 型 "HKEY" の値を使用して型 "LSTATUS" のエンティティを初期化することはできません
368
+
369
+ 2.
370
+ )が必要です。
371
+
372
+ 3. LNK2019 未解決の外部シンボル __imp__SHGetValueW@24 が関数 "bool __cdecl GetValue(void)" (?GetValue@@YA_NXZ)
373
+
374
+ で参照されました。
375
+ ```
376
+
377
+ またもやエラーが発生しました。
378
+ 公式の関数の定義通りになっていないのでしょうか。