Форум программистов, компьютерный форум CyberForum.ru

как можно перевести `int*' to `UINT' - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
Alex90
17 / 17 / 1
Регистрация: 30.01.2009
Сообщений: 103
05.02.2010, 11:40     как можно перевести `int*' to `UINT' #1
Есть программа в которой нужно отмечать сохраненные пункт меню. Решил данные об отмеченых пунктах записывать в реестр, после запуска программа должна читать данные с реестра и отмечать их. Вот код чтения реестра

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    HKEY hKey = 0;
    int buf[255] = {0};
    DWORD dwType = 0;
    DWORD dwBufSize = sizeof(buf);
    TCHAR szPath[MAX_PATH];
     
    const char* subkey = "Software\\my_app";
 
    if( RegOpenKey(HKEY_CURRENT_USER,subkey,&hKey) == ERROR_SUCCESS)
    {
        dwType = REG_SZ;
        RegQueryValueEx(hKey,"777",NULL, NULL, (BYTE*)buf, &dwBufSize);
 
        RegCloseKey(hKey);
 
        CheckMenuItem(hMainMenu, buf, MF_CHECKED);         
    }
}
Но компилятор пишет ошибку

invalid conversion from `int*' to `UINT'

по питался перевести

C++
1
2
int i;
i=(int)buf
но эффект тот же invalid conversion from `int*' to `UINT' как можно перевести `int*' to `UINT' или отметить пункт другим способом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 11:40     как можно перевести `int*' to `UINT'
Посмотрите здесь:

C++ Как перевести CString -ское число в Int?
C++ как перевести WORD в INT
C++ написать, прогу которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах C++
C++ Написать прогу, которая подсчитывает макс. и мин. значения переменных (int, shorting, longint, uint, char, uchar), ещё указать размер в байтах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
05.02.2010, 12:14     как можно перевести `int*' to `UINT' #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HKEY hKey = 0;
TCHAR buf[MAX_PATH];
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
TCHAR szPath[MAX_PATH];
     
const char* subkey = "Software\\my_app";
 
if( RegOpenKey(HKEY_CURRENT_USER,subkey,&hKey) == ERROR_SUCCESS)
{
    dwType = REG_SZ;
    RegQueryValueEx(hKey,"777",NULL, NULL, (BYTE*)buf, &dwBufSize);
    RegCloseKey(hKey);
    CheckMenuItem(hMainMenu, buf, MF_CHECKED);         
}
Alex90
17 / 17 / 1
Регистрация: 30.01.2009
Сообщений: 103
05.02.2010, 16:18  [ТС]     как можно перевести `int*' to `UINT' #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HKEY hKey = 0;
TCHAR buf[MAX_PATH];
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
TCHAR szPath[MAX_PATH];
     
const char* subkey = "Software\\my_app";
 
if( RegOpenKey(HKEY_CURRENT_USER,subkey,&hKey) == ERROR_SUCCESS)
{
    dwType = REG_SZ;
    RegQueryValueEx(hKey,"777",NULL, NULL, (BYTE*)buf, &dwBufSize);
    RegCloseKey(hKey);
    CheckMenuItem(hMainMenu, buf, MF_CHECKED);         
}
invalid conversion from `TCHAR*' to `UINT'

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HKEY hKey = 0;
TCHAR buf[MAX_PATH];
DWORD dwType = 0;
DWORD dwBufSize = sizeof(buf);
TCHAR szPath[MAX_PATH];
     
const char* subkey = "Software\\my_app";
 
if( RegOpenKey(HKEY_CURRENT_USER,subkey,&hKey) == ERROR_SUCCESS)
{
    dwType = REG_SZ;
    RegQueryValueEx(hKey,"777",NULL, NULL, (BYTE*)buf, &dwBufSize);
    RegCloseKey(hKey);
    int i;
    i=(int)buf;
    CheckMenuItem(hMainMenu, i, MF_CHECKED);         
}
Этот код компилируется, но пункт не отмечается
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
05.02.2010, 20:11     как можно перевести `int*' to `UINT' #4
Alex90, buf - это массив из 260 двубайтных данных, int - 4 байта. Как вы думаете, что должно быть результатом такого кода?
C++
1
2
int i;
i = (int)buf;
На сколько я понял, то из реестра читается строка? Тогда я чего-то не понял и входной информации для меня недостаточно.
Второй вариант. В реестре значение ключа - цифра.
Тогда читаем наше значение. Приводим первые N(по разрядности числа) символов в десятичное число, которое и передаем в CheckMenuItem
Yandex
Объявления
05.02.2010, 20:11     как можно перевести `int*' to `UINT'
Ответ Создать тему
Опции темы

Текущее время: 15:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru