• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Функция GetTextExtentPoint32

  • Автор темы george
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

george

Выдает на выходе в структуре SIZE бешанные числа (как будто фонт не определен) и в это время функция говорит об успехе ее отработки.
А в DEBUG-файле все нормально. Догадываюсь, что где-то в программе не освобождаю ресурсы от рисования.
Использую смешанный функционал из GDI+ и GDI:
Pen
SolidBrush
HatchBrush
Graphics::DrawLine
Graphics::DrawRectangle
Graphics::FillRectangle
CreateFontIndirect()
GetTextMetrics()
Обычные утечки памяти с помощью Compuware DevPartner Studio вроде отловил.
Где копать ? ;)
 
D

Dico

Попробуй заминить её на стандартную(о такой неразу неслышел)(Win32Api):
function GetTextExtent(DC: HDC; Str: PChar; Count: Integer): Longint;
Вычисляет pазмеpности Str, базиpуясь на текущем выбpанном шpифте.
Паpаметpы:
DC: Идентификатоp контекста устpойства.
Str: Стpока текста.
Count: Число символов в Str.
Возвpащаемое значение:
Высота и шиpина (в логических единицах) в стаpшем и младшем слове, соответственно.
 
Z

zubr

Dico
Функция GetTextExtent для Win3.x, в Win32 врядли будет работать.
george
Из твоего описания непонятно как ты саму функцию GetTextExtentPoint32 реализуешь. Попробуй не меняя шрифта в контексте устройства, применить эту функцию и посмотри что она покажет.
 
G

Guest

Всем спасибо!
Причины оказались банальными: не везде освобождал HFONT и к тому же пытался определить строку из одного символа, а сам под нее отвел не char[2], а char[1].
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!