※ ChatGPTを利用し、要約された質問です(原文:C言語でレジストリ取得「未解決の外部シンボル」)
C言語でレジストリ取得「未解決の外部シンボル」
このQ&Aのポイント
C言語でレジストリを取得する際に「未解決の外部シンボル」エラーが発生しています。
該当のエラーは、リンクエラーであり、関数 _main 内で参照された外部シンボル _SHRegGetUSValueA@32 の解決に失敗しています。
原因や解決方法についての情報が見つからず、初心者であるため困っています。
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 で参照されました。