Russian Qt Forum

Программирование => Общий => Тема начата: QuAzI от Январь 10, 2011, 10:39



Название: WINAPI, паника при сборке "Релиза"
Отправлено: QuAzI от Январь 10, 2011, 10:39
Нужно мониторить уровень заряда батареи ноутбука. Собрал такую качель, в хеадере
Код:
#include <wtypes.h>
typedef void (*GetSystemPowerStatusPrototype)(LPSYSTEM_POWER_STATUS);

class MainWindow : public QMainWindow
{
...
    GetSystemPowerStatusPrototype GetSystemPowerStatus;
    LPSYSTEM_POWER_STATUS ps;
...
в исходнике
Код:
В инициализации класса
    QLibrary lib("KERNEL32");
    GetSystemPowerStatus = (GetSystemPowerStatusPrototype) lib.resolve("GetSystemPowerStatus");

в вызываемой процедуре
   GetSystemPowerStatus(ps);
В сборке Debug всё работает, собрал Release и опаньки, падает даже не прорисовавшись. Натыкал выводов qDebug(), отловил что аккурат после вызова GetSystemPowerStatus(ps) падает.
Как его правильно объявлять тогда?


Название: Re: WINAPI, паника при сборке "Релиза"
Отправлено: SASA от Январь 10, 2011, 14:37
Может лучше так
Код:
SYSTEM_POWER_STATUS ps;
GetSystemPowerStatus(&ps);


Название: Re: WINAPI, паника при сборке "Релиза"
Отправлено: QuAzI от Январь 11, 2011, 21:32
Закончилась проблема после того как собрал весь код прямо в функцию (хотя каждый раз подтягивать dll помоему не совсем красиво, но зато работает), кроме объявления ps. ps всё так же в хеадере объявлен. Если совать его в функцию, тоже глючит.