Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2

Ошибка при блокировки выхода

26.11.2012, 15:17. Показов 1872. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь заблокировать кнопки выход, но возникает ошибка (((


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
HWND GetConsoleHwnd(void)
   {
       #define MY_BUFSIZE 1024 // Размер буфера для заголовка консольного окна.
       HWND hwndFound;         // Это то, что будет возвращено.
       char pszNewWindowTitle[MY_BUFSIZE]; // Уникальный заголовок окна.
       char pszOldWindowTitle[MY_BUFSIZE]; // Изначальный заголовок окна.
 
       // Выбираем текущий заголовок окна.
 
       GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
 
       // Формируем "уникальный" NewWindowTitle.
 
       wsprintf(pszNewWindowTitle,"%d/%d",
                   GetTickCount(),
                   GetCurrentProcessId());
 
       // Изменяем текущий заголовок окна.
 
       SetConsoleTitle(pszNewWindowTitle);
 
       // даём время заголовку, чтобы измениться.
 
       Sleep(40);
 
       // Ищем NewWindowTitle.
 
       hwndFound=FindWindow(NULL, pszNewWindowTitle);
 
       // Восстанавливаем изначальный заголовок окна.
 
       SetConsoleTitle(pszOldWindowTitle);
 
       return(hwndFound);
   }

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1>------ Построение начато: проект: Prog+, Конфигурация: Debug Win32 ------
1>Построение начато 26.11.2012 15:18:03.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Prog+.unsuccessfulbuild".
1>GenerateTargetFrameworkMonikerAttribute:
1>Целевой объект "GenerateTargetFrameworkMonikerAttribute" пропускается, так как все выходные файлы актуальны по отношению к входным.
1>ClCompile:
1>  MainFile.cpp
1>MainFile.cpp(34): error C2664: GetConsoleTitleW: невозможно преобразовать параметр 1 из "char [1024]" в "LPWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>MainFile.cpp(40): error C2664: wsprintfW: невозможно преобразовать параметр 1 из "char [1024]" в "LPWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>MainFile.cpp(44): error C2664: SetConsoleTitleW: невозможно преобразовать параметр 1 из "char [1024]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>MainFile.cpp(52): error C2664: FindWindowW: невозможно преобразовать параметр 2 из "char [1024]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>MainFile.cpp(56): error C2664: SetConsoleTitleW: невозможно преобразовать параметр 1 из "char [1024]" в "LPCWSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.85
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2012, 15:17
Ответы с готовыми решениями:

Не проигрываются звуки входа, выхода, блокировки
Здравствуйте! Уже несколько дней мучаюсь с такой проблемой: не проигрываются звуки входа, выхода, блокировки. Притом остальные прекрасно...

Подскажите программу для блокировки выхода в интернет по IP-адресу
подскажите программу для блокировки выхода в интернет по айпи адресу Добавлено через 17 секунд если можно то и по маку

Nexus 5 на Lollipop, ошибка при блокировки/разблокировки экрана
Последнее время смарт мой постоянно выдает ошибку при нажатии кнопки блокировки экрана, с начало происходит краткосрочное вибро, через...

16
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.11.2012, 15:29
А такой вариант пойдет?
C++
1
2
3
4
5
6
7
8
9
10
#include <Windows.h>
int main(){
    
    HWND hWnd = GetConsoleWindow();
    LONG oldstyle=GetWindowLong(hWnd,GWL_STYLE);
    LONG newstyle=oldstyle & ~WS_SYSMENU & ~WS_MINIMIZEBOX & ~WS_MAXIMIZEBOX;
    SetWindowLong(hWnd,GWL_STYLE,newstyle);
    system("pause");
    return EXIT_SUCCESS;
}
0
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 15:35  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А такой вариант пойдет?
C++
1
2
3
4
5
6
7
8
9
10
#include <Windows.h>
int main(){
    
    HWND hWnd = GetConsoleWindow();
    LONG oldstyle=GetWindowLong(hWnd,GWL_STYLE);
    LONG newstyle=oldstyle & ~WS_SYSMENU & ~WS_MINIMIZEBOX & ~WS_MAXIMIZEBOX;
    SetWindowLong(hWnd,GWL_STYLE,newstyle);
    system("pause");
    return EXIT_SUCCESS;
}
Все равно ошибка ((
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.11.2012, 15:36
невозможно преобразовать параметр 1 из "char [1024]" в "LPWSTR"
Отключите Юникод в проекте, либо используйте wchar_t
0
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 15:41  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Отключите Юникод в проекте, либо используйте wchar_t
А как отключить этот Юникод??
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.11.2012, 15:45
Если студия, то
"проект->свойства->свойства конфигурации->набор символов"
Поставить на "Использовать многобайтовую кодировку"

Путь, наверное, может немного отличаться в разных версиях, но все равно искать нужно в свойствах проекта
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 15:52  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Если студия, то
"проект->свойства->свойства конфигурации->набор символов"
Поставить на "Использовать многобайтовую кодировку"

Путь, наверное, может немного отличаться в разных версиях, но все равно искать нужно в свойствах проекта
Для 4 ошибок помогло, но осталась одна

C++
1
2
1>MainFile.cpp(39): error C2664: wsprintfA: невозможно преобразовать параметр 2 из "const wchar_t [6]" в "LPCSTR"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.11.2012, 15:56
error C2664: wsprintfA: невозможно преобразовать параметр 2 из "const wchar_t [6]" в "LPCSTR"
const char вместо const wchar_t при объявлении переменной.
wchar_t - это "широкий" символ.
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 16:08  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
const char вместо const wchar_t при объявлении переменной.
wchar_t - это "широкий" символ.

И как мне в этом коде исправить ошибку???
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
26.11.2012, 16:10
убрать wchar_t. Очевидно, ты его добавил просто так в надежде исправить предыдущую ошибку.
0
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 16:12  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
убрать wchar_t. Очевидно, ты его добавил просто так в надежде исправить предыдущую ошибку.
Я не могу понять где убрать??

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HWND GetConsoleHwnd(void)
   {
HWND hwndFound;    
       TCHAR pszNewWindowTitle[512]; 
       TCHAR pszOldWindowTitle[512]; 
       GetConsoleTitle(pszOldWindowTitle, 1024);
       wsprintf(pszNewWindowTitle,L"%d/%d",
                   GetTickCount(),
                   GetCurrentProcessId());
       SetConsoleTitle(pszNewWindowTitle);
       Sleep(40);
       hwndFound=FindWindow(NULL, pszNewWindowTitle);
       SetConsoleTitle(pszOldWindowTitle); 
       return(hwndFound);
   }
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.11.2012, 16:13
C++
1
wsprintf
Это функция для работы с wchar_t
используйте
C++
1
sprintf
А вообще, не нужно менять заголовок. Он найдет его корректно и без смены заголовка (во всяком случае, когда я проверял - он находил корректно).
Или воспользуйтесь моим вариантом, только после функции SetWindowLong добавьте
C++
1
RedrawWindow(hWnd,NULL,NULL,RDW_FRAME|RDW_INVALIDATE|RDW_UPDATENOW);
Это обновит окно и кнопки исчезнут.
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
26.11.2012, 16:20  [ТС]
Как вы сказали поменял

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HWND GetConsoleHwnd(void)
   {
HWND hwndFound;    
       TCHAR pszNewWindowTitle[512]; 
       TCHAR pszOldWindowTitle[512]; 
       GetConsoleTitle(pszOldWindowTitle, 1024);
       sprintf(pszNewWindowTitle,L"%d/%d",
                   GetTickCount(),
                   GetCurrentProcessId());
       SetConsoleTitle(pszNewWindowTitle);
       Sleep(40);
       hwndFound=FindWindow(NULL, pszNewWindowTitle);
       SetConsoleTitle(pszOldWindowTitle); 
       return(hwndFound);
   }

Появилась новая ошибка

C++
1
2
1>MainFile.cpp(32): error C2664: sprintf: невозможно преобразовать параметр 2 из "const wchar_t [6]" в "const char *"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
26.11.2012, 16:22
Цитата Сообщение от Egor138 Посмотреть сообщение
L"%d/%d"
Зачем ты L поставил??? Или это не ты? убери!
(и слеш наверное тоже лишний)
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
27.11.2012, 00:22  [ТС]
Все равно не работает ((((
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
27.11.2012, 00:30
ошибка, о которой ты сказал исправлена. Как только ты убрал юникодовые строки в настройках проекта, все ухищрения в коде, которые с ними связаны тоже надо убрать. все wcharы, все Lстроки...

если есть ещё какие-то ошибки, говори.
0
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
27.11.2012, 15:40  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
если есть ещё какие-то ошибки, говори.

Большинство ошибок действительно исправлены, вот оставшиеся:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
HWND GetConsoleHwnd(void)
   {
HWND hwndFound;    
       TCHAR pszNewWindowTitle[512]; 
       TCHAR pszOldWindowTitle[512]; 
       GetConsoleTitle(pszOldWindowTitle, 1024);
       sprintf(pszNewWindowTitle,"%d%d",
                   GetTickCount(),
                   GetCurrentProcessId());
       SetConsoleTitle(pszNewWindowTitle);
       Sleep(40);
       hwndFound=FindWindow(NULL, pszNewWindowTitle);
       SetConsoleTitle(pszOldWindowTitle); 
       return(hwndFound);
   } 
 
 
1>.\MainFile.cpp(32) : error C2664: sprintf: невозможно преобразовать параметр 1 из 'TCHAR [512]' в 'char *'
1>        Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Добавлено через 43 минуты
Наконец-то разобрался с этими ошибками и никакой код изменять не надо было!! ))
Я просто добавил в самом верху строку
#pragma comment (lib, "user32.lib")

Видимо все таки эта библиотека не подключена была))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2012, 15:40
Помогаю со студенческими работами здесь

Ошибка выхода за пределы массива при обращении к нескольким Panel
Здравствуйте. Есть 10 элементов Panel, нужно их выводить в рандомном порядке при нажатии на кнопку button1 (далее) и чтобы они повторно...

Ошибка при инициализации приложения (0xc0000135).Для выхода из приложения нажм кн "Ок".
Люди вот такая ошибка, кто знает как ее исправить (появилась после переустановки винды) Ошибка при инициализации приложения...

Ошибка соединения с БД после блокировки экрана
Добрый день. Пишу приложение на RAD delphi. Использую соединение TGPCONNECTION Проблема: Если пользователь блокирует...

Ошибка соединения с БД после блокировки экрана
Добрый день. Пишу приложение на RAD delphi. Использую соединение TGPCONNECTION Проблема: Если пользователь блокирует...

Блокировка документа тем же компьютером, на котором возникает ошибка блокировки
Здравствуйте, подскажите, пожалуйста: при проведении док. &quot;Принятие на работу организаций&quot; выдает ошибку &quot;Не удалось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru