win32 登錄檔寫入格式問題

2021-09-26 02:52:58 字數 1068 閱讀 1422

用 regsetvalueex 函式寫登錄檔資訊,資訊型別是(byte*),要寫入wchar型別的資料,直接強轉會出錯:

//要寫入的wchar型別的資料

wchar filename[max_path];

lstrcpy(filename, _t("張三"));

//登錄檔操作

hkey hkey = null;

long lreg = regopenkey(hkey_classes_root, _t("xx"), &hkey);

if (lreg != error_success)

regsetvalueex(hkey, _t("nowfilename"), null, reg_sz, (byte*)filename, sizeof(filename) + 1);

regclosekey(hkey);

這樣寫登錄檔內容:

後邊會有三個小點,儘管數值是對的

但是要讀取這個值就會出錯

應該是格式儲存的問題,但是

//要寫入的wchar型別的資料

wchar filename[max_path];

lstrcpy(filename, _t("張三"));

//先定義個byte*型別值的儲存filename

byte *filenamebyte = (byte*)filename;

...regsetvalueex(hkey, _t("nowfilename"), null, reg_sz, filenamebyte, sizeof(filenamebyte) + 1);

這個時候正確的讀取了

還有就是直接寫也是可以成功的

regsetvalueex(hkey, _t("nowfilename"), null, reg_sz, (byte*)_t("張三"), sizeof(_t("張三")) + 1);

Win32登錄檔列舉

最近有點忙,因為設計了很久的專案終於開紿寫 了。但堅持寫博是我的習慣,於是這會兒吃了晚飯的休息時間記錄了一點登錄檔api 操作的東西。下面這段 主要是用來列舉windows mobile下的plug in,然後可以設定所有的plug in的enabled鍵值。但windows mobile 的plu...

Win32登錄檔操作簡記

開啟登錄檔編輯器regedit.exe,介面左邊顯示的是健,右邊顯示的是健值,健可以分成主鍵及子鍵,健值由鍵值名稱和內容構成,由於在寫程式時候沒有搞清楚這些基本的概念,導致了api的使用問題,以下程式為列舉某子鍵下的所有值const char s i5 lpstr strpathname1 hkey...

win32 查詢登錄檔找網絡卡

define sizeof device name 256 cstring strdevicelist bool get device info int index,char key name,char device info,char device description regclosekey ...