RegQueryValueEx函式不能獲取到鍵值?

2021-07-04 03:51:11 字數 1536 閱讀 4836

使用這個函式,返回值是0,但是獲取到的鍵值只是字串的第乙個字母。這是為什麼?謝謝。急求答案。

int _tmain(int argc, _tchar* argv)

hkey hkey;//定義有關的hkey,在查詢結束時要關閉

//開啟與路徑 data_set相關的hkey

//訪問登錄檔,hkey則儲存此函式所開啟的鍵的控制代碼

long ret0 = (::regopenkeyex(hkey_local_machine, data_set, 0, key_read, &hkey));

if (ret0 != error_success)//如果無法開啟hkey,開啟指定登錄檔失敗,則中止程式的執行,

//查詢有關的資料

lpbyte addr_get = new byte[1024];//定義

dword type_1 = reg_sz;//定義資料型別

dword cbdata_1 = 1024;//定義資料長度

long ret1 = ::regqueryvalueex(hkey, aa, null, &type_1, addr_get, &cbdata_1);

if (ret1 != error_success)

//得到登錄檔中位址資訊

delete addr_get;

//關閉開啟的hkey

::regclosekey(hkey);

return 0;

}該段**中要獲取資料的變數就是addr_get,但是這個變數只讀取到鍵值字串的第乙個字母,這個是為啥?

解答:
**改為 紅色部分為改動。
int _tmain(int argc, _tchar* argv)

hkey hkey;//定義有關的hkey,在查詢結束時要關閉

//開啟與路徑 data_set相關的hkey

//訪問登錄檔,hkey則儲存此函式所開啟的鍵的控制代碼

long ret0 = (::regopenkeyex(hkey_local_machine, data_set, 0, key_read, &hkey));

if (ret0 != error_success)//如果無法開啟hkey,開啟指定登錄檔失敗,則中止程式的執行,

//查詢有關的資料

//lpbyte addr_get = new byte[1024];//定義

tchar addr_get[500];

dword type_1 = reg_sz;//定義資料型別

dword cbdata_1 = 1024;//定義資料長度

long ret1 = ::regqueryvalueex(hkey, aa, null, &type_1,

(lpbyte)

addr_get, &cbdata_1);

if (ret1 != error_success)

//得到登錄檔中位址資訊

//關閉開啟的hkey

::regclosekey(hkey);

網絡卡不能獲取IP

前幾天,新買電腦的網絡卡不能獲取ip。開始以為是驅動的問題,後來去華碩中文論壇裡求教,安裝了驅動,解決了乙個裝置無法識別的現象,似乎當時網絡卡也能獲取ip了。但隨後不久,不能獲取ip的現象又經常出現。究竟是怎麼回事?這次經過仔細觀察,發現是無線路由器惹的禍。這台無線路由器是連線在辦公室的乙個交換機上...

試試能不能獲取積分

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

哪些函式不能為虛函式

常見的不不能宣告為虛函式的有 普通函式 非成員函式 靜態成員函式 內聯成員函式 建構函式 友元函式。1 為什麼c 不支援普通函式為虛函式?普通函式 非成員函式 只能被overload,不能被override,宣告為虛函式也沒有什麼意思,因此編譯器會在編譯時邦定函式。2 為什麼c 不支援建構函式為虛函...