簡體   English   中英

C ++添加到注冊表

[英]c++ add to registry

因此,代碼使我煩惱,需要一些幫助。 錯誤:char *與成本BYTE *不兼容。 吠叫着: RegSetValueExA(hKey, "My App", 0, REG_SZ, buffer, sizeof(buffer)); 特別是緩沖區。

錯誤消息(vstudio): Error 3 error C2664: 'RegSetValueExA' : cannot convert parameter 5 from 'char [500]' to 'const BYTE *' {snip}\\visual studio 2010\\projects\\reg\\reg\\reg.cpp 74

我的代碼(注意:stemres =可執行文件的完整路徑,在LPCWSTR中,我將其成功轉換為char):

HKEY hKey;
RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\CurrentVersion\\Run", 0, KEY_WRITE, &hKey);
// stemres = the executable path
char buffer[500];
wcstombs(buffer,stemres,500);
RegSetValueExA(hKey, "My App", 0, REG_SZ, buffer, sizeof(buffer));
RegCloseKey(hKey);
cout << "Added to registry.";

RegSetValueExA()的第五個參數是const BYTE * ,它應該是const unsigned char *同義詞,並且您嘗試將char *傳遞給它。 恐怕您必須將其轉換:

 RegSetValueExA(hKey, "My App", 0, REG_SZ, reinterpret_cast<const BYTE *>(buffer), sizeof(buffer));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM