C言語でレジストリ取得「未解決の外部シンボル」
C言語でレジストリを取得する時に「未解決の外部シンボル」エラー
レジストリを取得したくて、下記のコードで実行したら、
======================================================================
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <shlwapi.h>
int main(void)
{
char Value[1000];
DWORD ValueSize;
char *DefaultValue = "";
ValueSize = 1000;
/* HKEY_LOCAL_MACHINEのSoftware\masapicoというキーにあるfooという名前のレジストリ値を取得 */
SHRegGetUSValue(
"Software\masapico",
"foo",
NULL,
Value,
&ValueSize,
FALSE,
DefaultValue,
lstrlen(DefaultValue) + 1);
/* 結果を表示 */
printf("%s\n", Value);
return 0;
}
======================================================================
こういうエラーが出ます。
1>コンパイルしています...
1>testExe.cpp
1>リンクしています...
1>testExe.obj : error LNK2019: 未解決の外部シンボル _SHRegGetUSValueA@32 が関数 _main で参照されました。
1>I:\testExe\Debug\testExe.exe : fatal error LNK1120: 外部参照 1 が未解決です。
いろいろ調べましたが原因はわからず困っています。
Javaはある程度やってましたが、Cに関しては初心者です。
環境は
Win7 64bitです。
WinXPの環境でコンパイルしても同じ現象です。
その時のエラーは
error LNK2019: 未解決の外部シンボル _SHRegGetUSValue が関数 _main で参照されました。
お礼
ご回答ありがとうございます。 普段は違う行にエラーを指摘する事が多いと思うのですが、今回は誤りの行をまさに指摘しているのにも関わらず、気付きませんでした。 言い訳ですが、今回は一番悪い見落とし方だと思います。 私は文系の出身であまりコンピュータの仕事の経験がなく、書籍にとっつきにくいのですが、いつもエラーメッセージを検索したり、本を遡ったり、違う書籍を見たり、自分ではその時は限界まで考えたつもりで、人に頼っています。 それでもやはり自分の努力が足りませんでした。 暫く、自学してから投稿致します。 その際は、どうぞ宜しくお願い致します。