Russian Qt Forum
Ноябрь 23, 2024, 20:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ждущий режим  (Прочитано 7487 раз)
hackoff
Гость
« : Июнь 02, 2010, 09:30 »

При попытке перевести компьютер в ждущий режим с помощью функции
Код:
#include <PowrProf.h>

Код:
SetSuspendState(true, false, false);

Выдает ошибки на стадии компиляции:
Код:
D:\diplom\clnt/src//systemFunction.cpp:56: undefined reference to `SetSuspendState@12'
Файл PowProf.h существует, и в нем есть BOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);

В чем ошибка?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июнь 02, 2010, 10:47 »

это ошибка на стадии линковки. Подключи PowrProf.lib к проекту.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
hackoff
Гость
« Ответ #2 : Июнь 02, 2010, 12:23 »

Добавил
Код:
LIBS += C:/Windows/System32/powrprof.dll
. Не помогло.
Сделал так:
Код:
    HINSTANCE hMyDll;
    LPCSTR str("PowrProf.dll");
    hMyDll = LoadLibraryA(str);

    typedef bool (WINAPI *PFN_MyFunction)(bool,bool,bool);
    PFN_MyFunction pfnMyFunction;
    pfnMyFunction=(PFN_MyFunction) GetProcAddress(hMyDll,"SetSuspendState");
    pfnMyFunction(false,false,false);

Только вот при вызове  pfnMyFunction(false,false,false); и  pfnMyFunction(true,false,false); почему-то одно и тоже делает (уходит в спячку).
Хотя как я понял при pfnMyFunction(false,false,false) ждущий режим, а при pfnMyFunction(true,false,false) спящий режим...
Ох уж это winApi... ничего не понятно Грустный
Записан
Sahab
Гость
« Ответ #3 : Июнь 02, 2010, 12:39 »

LIBS += path/to/PowrProf.lib

...
p.s. а зочем выдирать с либы если есть хидер?
Записан
hackoff
Гость
« Ответ #4 : Июнь 02, 2010, 12:51 »

у меня опыта нет работы с либами.... вот и изобретаю велосипед Грустный
Записан
hackoff
Гость
« Ответ #5 : Июнь 02, 2010, 14:19 »

g++: path/to/PowrProf.lib: No such file or directory
не понятно...
Записан
crossly
Гость
« Ответ #6 : Июнь 02, 2010, 14:26 »

g++: path/to/PowrProf.lib: No such file or directory
не понятно...
не ужели даже желания читать то что тебе пишут нету??Улыбающийся.... сразу видно студент.... найди у себя путь path/to/
Записан
hackoff
Гость
« Ответ #7 : Июнь 02, 2010, 14:29 »

сделал так:
Код:
LIBS += C:\Qt\2010.02.1\mingw\lib\libpowrprof.a
При малом кругозоре в работе с библиотеками трудной найти полезную информацию, да и информативность ее на порядок ниже.

Код:
path/to/
не нашел.
Записан
crossly
Гость
« Ответ #8 : Июнь 02, 2010, 14:36 »

Цитировать
Код:
path/to/
не нашел.
очень странно .... ума не приложу... с чего бы это не было....
Записан
hackoff
Гость
« Ответ #9 : Июнь 02, 2010, 14:43 »

аналогично. Даже великий поиск не помог Грустный
Записан
crossly
Гость
« Ответ #10 : Июнь 02, 2010, 16:07 »

а смысл path to понятен?? .... это вопрос на тему "А где на клавиатуре Any Key?"
Записан
Sahab
Гость
« Ответ #11 : Июнь 02, 2010, 16:29 »

провокация?
аналогично. Даже великий поиск не помог Грустный
это имелось в виду win+F или google?
Добавил
Код:
LIBS += C:/Windows/System32/powrprof.dll
. Не помогло.
Сделал так:
Код:
    HINSTANCE hMyDll;
    LPCSTR str("PowrProf.dll");
    hMyDll = LoadLibraryA(str);

    typedef bool (WINAPI *PFN_MyFunction)(bool,bool,bool);
    PFN_MyFunction pfnMyFunction;
    pfnMyFunction=(PFN_MyFunction) GetProcAddress(hMyDll,"SetSuspendState");
    pfnMyFunction(false,false,false);

Только вот при вызове  pfnMyFunction(false,false,false); и  pfnMyFunction(true,false,false); почему-то одно и тоже делает (уходит в спячку).
Хотя как я понял при pfnMyFunction(false,false,false) ждущий режим, а при pfnMyFunction(true,false,false) спящий режим...
Ох уж это winApi... ничего не понятно Грустный

резолвить мы значит можем а "path/to" никак? или я беру слишком высоко и это простой копи-паст?...
но тогда "diplom" в пути навевает ...
Цитировать
D:\diplom\clnt/src//systemFunction.cpp:56: undefined reference to `SetSuspendState@12'
... /me в недоумении
« Последнее редактирование: Июнь 02, 2010, 16:35 от Sahab » Записан
hackoff
Гость
« Ответ #12 : Июнь 03, 2010, 05:27 »

издеваетесь... А мне по прежнему не понятен смысл совета "LIBS += path/to/PowrProf.lib".
Возможно я и должен был догадаться что path/to  это произвольная папка(pathTo понятнее). Но вот что PowrProf.lib == libpowrprof.a это сложнее... Если бы я это знал, то проблемы не возникло бы.
Прошу прощения, за то, что отвлекаю глупыми вопросами, но мне и правда было не понятно.
« Последнее редактирование: Июнь 03, 2010, 06:24 от hackoff » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.271 секунд. Запросов: 23.