Подробности - Функции для работы с реестром

Функция CWinApp::SetRegistryKey:

void SetRegistryKey( LPCTSTR lpszRegistryKey );
void SetRegistryKey( UINT nIDRegistryKey );

Параметры:

Заставляет приложение сохранять установки в реестр вместо INI файлов. Эта функция устанавливает m_pszRegistryKey, которая затем используется в следующих функциях-членах CWinApp: GetProfileInt, GetProfileString, WriteProfileInt, и WriteProfileString. Если эта функция была вызвана, список недавно используемых файлов (list of most recently-used - MRU) также сохраняется в реестре. Ключ реестра обычно является именем компании. Ключ реестра имеет следующий вид: HKEY_CURRENT_USER\Software\<company name>\<application name>\<section name>\<value name>.

Функция CWinApp::GetProfileInt:

UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );

Возвращаемое значение:

Если функция успешно отработала - целое значение строки определенной записи. Возвращаемое значение - значение параметра nDefault, если функция не нашла записи. Возвращаемое значение - 0 если значение, которое соответствует заданной записи не целое.

Эта функция поддерживает шестнадцатеричную нотацию для значений в .INI файле. Когда вы получаете знаковое целое, вы должны перевести значение в int.

Параметры:

Вызывайте эту функцию для получения целого значения записи из определенной секции из реестра или .INI файла.

Записи сохраняются следующим образом:

Эта функция не чувствительна к регистру букв, таким образом, строки в параметрах lpszSection и lpszEntry могут использовать буквы разного регистра.

Функция CWinApp::GetProfileString:

CString GetProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry,
	LPCTSTR lpszDefault = NULL );

Возвращаемое значение:

Возвращаемое значение - строка из .INI файла приложения или lpszDefault, если строка не найдена. Максимальная длинна строки, которую поддерживает система, определена в _MAX_PATH. Если lpszDefault равно NULL, возвращаемое значение - пустая строка.

Параметры:

Вызывайте эту функцию для получения строки связанной с записью в заданной секции реестра приложения или .INI файла.

Записи сохраняются следующим образом:

Пример:

CString strSection       = "Моя секция";
CString strStringItem    = "Мой строковый элемент";
CString strIntItem       = "Мой целый элемент";

CWinApp* pApp = AfxGetApp();

pApp->WriteProfileString(strSection, strStringItem, "test");

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == "test");

pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Функция CWinApp::WriteProfileInt:

BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );

Возвращаемое значение:

Не 0 в случае удачного вызова функции, иначе 0.

Параметры:

Вызывайте эту функцию для записи заданного значения в заданную секцию реестра или .INI файл.

Записи сохраняются следующим образом:

Пример:

CString strSection       = "Моя секция";
CString strStringItem    = "Мой строковый элемент";
CString strIntItem       = "Мой целый элемент";

CWinApp* pApp = AfxGetApp();

pApp->WriteProfileString(strSection, strStringItem, "test");

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == "test");

pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Функция CWinApp::WriteProfileString:

BOOL WriteProfileString( LPCTSTR lpszSection, 
	LPCTSTR lpszEntry, LPCTSTR lpszValue );

Возвращаемое значение: Не 0 в случае удачного вызова функции, иначе 0.

Параметры:

Вызывайте эту функцию для записи заданной строки в заданную секцию реестра или .INI файл.

Записи сохраняются следующим образом:

Пример:

CString strSection       = "Моя секция";
CString strStringItem    = "Мой строковый элемент";
CString strIntItem       = "Мой целый элемент";

CWinApp* pApp = AfxGetApp();

pApp->WriteProfileString(strSection, strStringItem, "test");

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == "test");

pApp->WriteProfileInt(strSection, strIntItem, 1234);
int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Прислал Дмитрий Белов (Клуб любителей С++).


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 23.02.2000