レジストリから文字列キーを読み込むためにいくつかのコードを試してみましたが、テストした後に書き留めたものが見つかりました。しかし、非常に混乱することは、このコードがHKEY_LOCAL_MACHINE/HARDWAREキーのために機能するが、ソフトウェアのためには動作しないということです。私は何を無視するのか分からない?レジストリキーエラーを読み込む
char rgValue [512];
char fnlRes [512];
DWORD size1;
DWORD Type;
HKEY hKey = 0;
char buf[512] = {0};
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
if( RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\SCADE\\HMI"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
dwType = REG_DWORD;
if(RegQueryValueEx(hKey, TEXT("test"), 0, &dwType, (LPBYTE)buf, &dwBufSize) == ERROR_SUCCESS)
{
cout << "key value is '" << buf << "'\n";
}
else
cout << "can not query for key value\n";
RegCloseKey(hKey);
}
else
cout << "Can not open key\n";
コール 'GetLastError'と結果とのあなたの記事を更新。 –
@RichardCritten GetLastErrorに慣れていませんが、コードに挿入して0の値を返しました。私のメインコードでは、regKeyを正常に起動した後、エラーとデバッガで「RegQueryValueEx」フェイスが「キー値を問い合わせることができません」という行に移動します。 –
'RegQueryValueEx'のドキュメントを読んだだけで、 https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspxリンクのサンプルも参照 –