標準ユーザーとして Windows 7 の HKEY_CURRENT_USER\Software\Classes から値を読み取ろうとしていますが、キーは存在しますが、エラーが発生します。以下の両方のコードは成功しません。
l = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Classes", 0, KEY_READ, &hKey);
// RegOpenKeyEx doesn't success either
l = RegOpenKey(HKEY_CURRENT_USER, L"Software\\Classes", &hKey);
このコードは、多くのことを行うアプリケーションによって呼び出されるdllにあります (それが何をしているのかはわかりません)。
ただし、同じアカウントの同じコンピューターでRegOpenKeyだけを使用する単純なアプリは完全に機能します...
問題の原因と2つの違いを教えてもらえますか? テスト アプリは c++ で記述されていますが、dll は c で記述されています。
編集: L"Software\Classes" の前の "L" を削除するだけで問題は解決しました...