В каком модуле объявлена функция CallNtPowerInformation?
Справка не помогает, там копипаста с MSDN.
Если бы только импортом функций всё обошлось то фиг бы с ним, но ещё структуры придётся описывать в ручную.
Ни в каком. Подключай библиотеку и зазывай через RTTI.
Да, похоже на то. Ладно, не проблема.
Если мне что-то не изменяет, эта функция, - в смысле библиотека, - характерна для Win7. То есть для WinXP твоя программулина будет вообще не актуально.
Вот тут заверяют что всё будет норм..
Например IsPwrHibernateAllowed из той же длл уже проверена в ХР, и пашет как часы.
Я теперь смотрю первым делом прежде чем читать какая клёвая функция. Да ещё прохожусь прогой которая даёт подробную информацию из РЕ заголовков.
Например IsPwrHibernateAllowed из той же длл уже проверена в ХР, и пашет как часы.
Я теперь смотрю первым делом прежде чем читать какая клёвая функция. Да ещё прохожусь прогой которая даёт подробную информацию из РЕ заголовков.
Я всегда не ставил справку, и у меня есть ощущение что я правильно делал.
В крайнем на эмбаркадеро залезть можно, хотя бывало крайне редко. В основном MSDN помогает, ну и наш любимый форум :)
Справка последняя была хорошая только во времена Borland'а. Во времена Embarcadero они совсем распоясались, и гонят только продукты, в смысле IDE всех размеров, сортов и качеств.
В Borland Delphi 2006 в справке по API тоже в основном копипаст MSDL. Т.е. азы си знать надо. Похоже поддержка Win API в Дельфи не супер. Учитывая, что и заголовочники не полные.
А чья же ещё справка по API Windows должна быть, как не от Microsoft? Никто в Borland не обязывался велосипед изобретать и придумывать мануалы по их библиотекам.
Справедливости ради: неполнотой страдают и C/С++ средства. Например, в MinGW много недочетов в заголовочниках для Win API.
Последнее время все чаще использую "ручной" импорт ф-ций API из системных dll с обращением для справки в MSDN. Так надежней.
я бы сказал что так правильнее. Не боги горшки отжигают. Там такие же программисты как я и ты. Поэтому можно посидеть и самому мордочку написать на чью-то библиотеку, которая будет тебе одному понятна, без написания подробной документации.
Цитата: mfender
А чья же ещё справка по API Windows должна быть, как не от Microsoft? Никто в Borland не обязывался велосипед изобретать и придумывать мануалы по их библиотекам.
Никто не обязывался, верно. Обязывался только денежки получать.
От них не требовалось ничекго сложного. Просто нужно было посидеть и поработать раскидать все функции по разным модулям, и в справке написать какая в каком.
Справка громоздская но бестолковая. В следующий раз ставить не буду, место на винте только жрёт да реестр засерает.
В D7 толковая справка есть по API Win32, понятно что уже немного устаревшая, но всё ещё актуальная.
Цитата: mfender
... Не боги горшки отжигают.
....
....
И тут ключевое слово - ОТЖИГАЮТ
Со справкой они реально отожгли )))
Если очень надобно, могу написать библиотеку-переходник на VC++, там-то эта функция есть в хедерах и либах. Жаль, что борландовские творения не умеют в этот тип библиотек.
Код:
function CallNtPowerInformation(InformationLevel: Integer;
lpInputBuffer: Pointer;
nInputBufferSize: Cardinal;
lpOutputBuffer: Pointer;
nOutputBufferSize: Cardinal): Cardinal; stdcall;
external 'PowrProf.dll' name 'CallNtPowerInformation';
lpInputBuffer: Pointer;
nInputBufferSize: Cardinal;
lpOutputBuffer: Pointer;
nOutputBufferSize: Cardinal): Cardinal; stdcall;
external 'PowrProf.dll' name 'CallNtPowerInformation';
Код:
type
PROCESSOR_POWER_INFORMATION = record
Number,
MaxMhz,
CurrentMhz,
MhzLimit,
MaxIdleState,
CurrentIdleState : Cardinal;
end;
PROCESSOR_POWER_INFORMATION = record
Number,
MaxMhz,
CurrentMhz,
MhzLimit,
MaxIdleState,
CurrentIdleState : Cardinal;
end;
Вот продвинулся, взгляни на проект, может пригодится.
Спасибо. Скачал, скомпилил. Частота определилась верно.