Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Enum & CallBack


Nick N A ©   (2002-10-27 06:58:00) 

Все CallBack функции у меня задыхаются в Delphi после первого шага - нарушение стека.

BOOL CALLBACK PropEnumProc(HWND hwnd, LPCTSTR lpszString, HANDLE hData )
{
result = true;
}// вариант в си работает,
а что нужно Delphi ? (в си я небольшой мастер, да и интерфейс у
Delphi лучше продуман)

неработают даже такой вариант:

procedure Add(lpszString:LPCTSTR);
Begin
Form1.ListBox1.Add(lpszString);
end;


function PropEnumProc;(hwnd:HWND;enumerated
lpszString:LPCTSTR; HANDLE:cardinal ):LongBool;cdecl;
assembler
asm
pusha;// variant 2
push lpszString;//variant 2
call add; //variant 2
popa;//variant 2
end;// ошибка всегда после этой строчки

var wm:HWND;
Begin
wn:=GetForegroundWindow;
ListBox1.Clear;
EnumProps(wn,@PropEnumProc);
end;

Enum - это перечисление различных параметров, свойств, отличный быстрый, часто единственный способ получить информацию о винде


Anatoly Podgoretsky   (2002-11-02 14:39:00) [1]

Не только здесь перепутано соглащение о вызове, но и в Add также


Digitman   (2002-11-02 14:32:00) [2]

function PropEnumProc(hwnd:THandle;
lpszString:PChar; HANDLE:cardinal):LongBool;stdcall;
begin
Add(lpszString);
Result := True;
end;


apay   (2002-11-02 01:35:00) [3]

вообще-то в windef.h есть строчка

#define CALLBACK __stdcall


так что если в хелпе сишная ф-я CALLBACK, надо писать stdcall


Cobalt   (2002-10-30 15:14:00) [4]

BOOL CALLBACK PropEnumProc( HWND hwnd,
// handle to window whose property list is being enumerated
LPCTSTR lpszString,
// string component of property
HANDLE hData
// data handle component of property );

Попробуйте вместо LPCTSTR поставить PCHar


Nick N A   (2002-10-30 03:50:00) [5]

Я уже пробывал stdcall, в справке их гораздо больше :) ,
но ни с одиним из них неработает :( .


Alex4444444444   (2002-10-27 14:40:00) [6]

VSEGDA stdcall !


Cobalt   (2002-10-27 13:18:00) [7]

Обычно CallBack-ф-ии - stdcall


Наверх

Титульная страница Поиск, карта сайта Написать письмо