1
我在AC void函數的代碼在Windows註冊表項來獲取和打印子項的Windows註冊表鍵子鍵返回數組C++
TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name
retCode = RegQueryInfoKey(
hKey, // key handle
achClass, // buffer for class name
&cchClassName, // size of class string
NULL, // reserved
&cSubKeys, // number of subkeys
&cbMaxSubKey, // longest subkey size
&cchMaxClass, // longest class string
&cValues, // number of values for this key
&cchMaxValue, // longest value name
&cbMaxValueData, // longest value data
&cbSecurityDescriptor, // security descriptor
&ftLastWriteTime); // last write time
// Enumerate the subkeys, until RegEnumKeyEx fails.
if (cSubKeys)
{
printf("\nNumber of subkeys: %d\n", cSubKeys);
for (i=0; i<cSubKeys; i++)
{
cbName = MAX_KEY_LENGTH;
retCode = RegEnumKeyEx(hKey, i,
achKey,
&cbName,
NULL,
NULL,
NULL,
&ftLastWriteTime);
if (retCode == ERROR_SUCCESS)
{
_tprintf(TEXT("(%d) %s\n"), i+1, achKey);
}
}
}
如何修改與所有子鍵返回值的數組 感謝
喜大衛感謝您的答覆, 我'不能使用vector<string> subkeys
, 這些標題沒有錯誤編譯
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
如果我更改爲:
vector<TCHAR> getSubKeys(HKEY key)
{
vector<TCHAR>> subkeys;
....
for (i=0; i<cSubKeys; i++)
{
// get subkey name
subkeys.push_back(TCHAR>(achKey));
}
....
return subkeys;
}
這種變化它的工作原理,但在t_main功能,當我嘗試列出矢量到控制檯只顯示八(子項的數量是正確的)號碼,如65000的八個向量元素的值相同,問題出在哪裏,或者我怎樣才能用你的代碼編譯, 非常感謝
[你嘗試過什麼(http://www.whathaveyoutried.com)? – Jon 2012-04-21 12:46:24
沒有什麼,我開始與win32 – 2012-04-21 13:04:08