NPAPI dll ファイルを作成していて、レジストリから情報を取得する必要がありますが、RegQueryValueEx を使用すると、奇妙な文字が表示されます。
たとえば、私のコンピューター モデルは「N310」ですが、「Nfb1fb1」または「N$(」と表示されます。
文字セットの問題だと確信していますが、私は C++ を初めて使用するので、助けが必要です。
Visual Studio 2010 を使用しており、プロジェクトで UNICODE 文字セットを使用しています。
これが私のコードです:
char lszValue[255];
std::string cadena;
HKEY hKey;
LONG returnStatus;
DWORD dwType=REG_SZ;
DWORD dwSize=255;
returnStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DESCRIPTION\\System\\BIOS", NULL, KEY_READ, &hKey);
if (returnStatus == ERROR_SUCCESS) {
returnStatus = RegQueryValueEx(hKey, L"SystemProductName", NULL, &dwType,(LPBYTE)&lszValue, &dwSize);
lszValue[dwSize] = 0;
cadena.assign(lszValue, dwSize);
return cadena;
}
どうもありがとうございました。