質問編集履歴

2

編集

2018/04/20 11:57

投稿

mercurian-teto
mercurian-teto

スコア75

test CHANGED
File without changes
test CHANGED
@@ -753,3 +753,23 @@
753
753
  またもやエラーが発生しました。
754
754
 
755
755
  公式の関数の定義通りになっていないのでしょうか。
756
+
757
+
758
+
759
+
760
+
761
+ #リンクのつけ方
762
+
763
+ ```
764
+
765
+ //プロジェクト→[プログラム名]のプロパティ→リンカー→入力→追加の依存ファイル
766
+
767
+ でlibファイルを追加することができました。
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+ ```

1

追記

2018/04/20 11:57

投稿

mercurian-teto
mercurian-teto

スコア75

test CHANGED
File without changes
test CHANGED
@@ -639,3 +639,117 @@
639
639
 
640
640
 
641
641
  ```
642
+
643
+
644
+
645
+ ###追記1
646
+
647
+ 先ほどの[レジストリ編集](http://nienie.com/~masapico/api_SHGetValue.html)のリンク先にあるSHGetValueと、[MicroSoftのSHGetvalue](https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb773495(v=vs.85).aspx)と型が違っていたので、
648
+
649
+ 関数が違うかと思い、
650
+
651
+ ```
652
+
653
+ DWORD SHGetValue(
654
+
655
+ HKEY hKey,
656
+
657
+ LPCTSTR SubKeyName,
658
+
659
+ LPCTSTR ValueName,
660
+
661
+ LPDWORD ValueType,
662
+
663
+ LPVOID Value,
664
+
665
+ LPDWORD ValueSize);
666
+
667
+ ```
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ ```
676
+
677
+ DWORD RegestryCheck(
678
+
679
+ HKEY hKey,
680
+
681
+ LPCTSTR SubKeyName,
682
+
683
+ LPCTSTR ValueName,
684
+
685
+ LPDWORD ValueType,
686
+
687
+ LPVOID Value,
688
+
689
+ LPDWORD ValueSize);
690
+
691
+ ```
692
+
693
+
694
+
695
+ に変えていました。
696
+
697
+ 回答者方々のご指摘通り、 とりあえず、
698
+
699
+ RegestryCheckをSHGetValueに変換し、
700
+
701
+
702
+
703
+ Shlwapi.hをインクルードしたのですが、
704
+
705
+
706
+
707
+ またエラーが表示されました。
708
+
709
+ ```
710
+
711
+ エラー LNK2019 未解決の外部シンボル __imp__SHGetValueW@24 が関数 "bool __cdecl GetValue(void)"
712
+
713
+ (?GetValue@@YA_NXZ) で参照されました。
714
+
715
+ ```
716
+
717
+
718
+
719
+ 型がmicrosoftと個人サイトに書いてあったレジストリの関数の宣言の
720
+
721
+
722
+
723
+ SHGetValueの型が違っていたので、変更しました。(DWORD→LSTATUS)
724
+
725
+ しかし、
726
+
727
+ ```
728
+
729
+
730
+
731
+ 1.
732
+
733
+ 型 "HKEY" の値を使用して型 "LSTATUS" のエンティティを初期化することはできません
734
+
735
+
736
+
737
+ 2.
738
+
739
+ )が必要です。
740
+
741
+
742
+
743
+ 3. LNK2019 未解決の外部シンボル __imp__SHGetValueW@24 が関数 "bool __cdecl GetValue(void)" (?GetValue@@YA_NXZ)
744
+
745
+
746
+
747
+ で参照されました。
748
+
749
+ ```
750
+
751
+
752
+
753
+ またもやエラーが発生しました。
754
+
755
+ 公式の関数の定義通りになっていないのでしょうか。