Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с SendMessage 
V
    Опции темы
SkyHawk
Дата 5.4.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Народ! Помогите пожалуйста!
Начал изучать Visual C++. Раньше писал на Билдере. Так вот. Необходимо создать программку, которая помимо всего прочего будет гасить экран при определенных условиях. Покопавшись в инете, нашел такую функцию API:

Код

  SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, LPARAM(2));


Именно она гасит экран. Далее делаю так: создаю пустую форму с кнопкой, в обработчике нажатия на кнопку добавляю эту функцию. 
В результате выдает кучу ошибок "необъявленные идентификатор".  Если эту же функцию запускать на билдере - все отрабатывает на ура. В чем дело, что можно сделать, и как исправить данную проблему? 
С нетерпением жду ваших советов.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
ИванМ
Дата 5.4.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Нужно подключить соответствующие заголовки, в котором описаны нужные идентификаторы. 
PM MAIL   Вверх
SkyHawk
Дата 5.4.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Цитата(ИванМ @  5.4.2010,  15:13 Найти цитируемый пост)
Нужно подключить соответствующие заголовки, в котором описаны нужные идентификаторы.  


Подключил "winuser.h". Не помогло.
Код

c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: HWND_BROADCAST: необъявленный идентификатор
c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: WM_SYSCOMMAND: необъявленный идентификатор
c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: SC_MONITORPOWER: необъявленный идентификатор

--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
ИванМ
Дата 5.4.2010, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Какая у тебя версия Visual C++? 
А, VS2008. 
Ты случаем не на Managed C++ пишешь? (под .NET). Странный заголовок твоего модуля.

Это сообщение отредактировал(а) ИванМ - 5.4.2010, 21:11
PM MAIL   Вверх
SkyHawk
Дата 6.4.2010, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Да нет... На обычном С++...
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Earnest
Дата 6.4.2010, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



1) Проверь, пути стандартные у тебя прописаны? К папке SDK? Это в настройках среды.
2) Как проект создавал? Возможно, как-то криво. В winUser есть несколько отключающих гардов, напр. NOUSER. Нужно убедиться, что их никто не установил. Лучше всего создать проект соответствующим визардом. Кроме того, если ты пишешь на MFC, то нужно подключать не winUser а afxwin.h


--------------------
...
PM   Вверх
SkyHawk
Дата 6.4.2010, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Пробовал подключить следующие модули:
Код

#include "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinUser.h"
#include "C:\Program Files\Borland\CBuilder6\Include\Mfc\afxwin.h "  


Выдает одно и то же:

Код

------ Построение начато: проект: qqq5, Конфигурация: Debug Win32 ------
Компиляция...
qqq5.cpp
c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: HWND_BROADCAST: необъявленный идентификатор
c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: WM_SYSCOMMAND: необъявленный идентификатор
c:\documents and settings\user\мои документы\visual studio 2008\projects\qqq5\qqq5\Form1.h(86) : error C2065: SC_MONITORPOWER: необъявленный идентификатор
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(46) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "HDWP"
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(46) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(46) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(47) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "MENUTEMPLATEA"
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(47) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(47) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(54) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "LPMENUTEMPLATEA"
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(54) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(54) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(62) : error C2065: CALLBACK: необъявленный идентификатор
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(62) : error C2065: WNDPROC: необъявленный идентификатор
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(62) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\Include\\WinUser.h(62) : fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
Журнал построения был сохранен в "file://c:\Documents and Settings\User\Мои документы\Visual Studio 2008\Projects\qqq5\qqq5\Debug\BuildLog.htm"
qqq5 - ошибок 16, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Проект создавал визардом. Тип - Windows Form. Никто никакие настройки не менял. Я один за этим компом работаю, кроме меня только супруга, но она никак не могла такие настройки изменить. smile Система установлена недавно, чистая, не кривая. Как установил MSVC++ по умолчанию, так сразу и начал создавать проект.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
GoldFinch
Дата 6.4.2010, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



жесть...


SkyHawk
создать проект -> консольное приложение -> [o] пустой проект -> добавить файл -> main.cpp
Код

#include <windows.h>

int main()
{
     SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, LPARAM(2));
}


Добавлено через 50 секунд
визарды - зло.
особенно если не понимаешь что они создают.
PM MAIL ICQ   Вверх
SkyHawk
Дата 7.4.2010, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Блин... Так значит я в визарде выбирал совсем не то, что нужно... Ну, извиняйте, ибо не знаком с MVC++, а документации нет... Щас кое-чего в электронном виде накачал... Спасибо за подсказку, буду копать дальше сам. smile
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Violetgem
Дата 23.8.2022, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 23.8.2022

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.