C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Ошибка работы с WinAPI ::EnumWindows
Ginger
Отправлено: 09.02.2006, 20:38


Не зарегистрирован







Давно не работал с С++ Builder.
А тут новая студия появилась. Пришел, поставил и... обломался.
Вот сижу и не знаю, то ли я чего то не знаю, то ли глюк какой-то =(

Напислал простой пример для работы с WinAPI следующий:
CODE

TListBox* g_lb;
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
g_lb = ListBox1;
ListBox1->Clear();
BOOL b = ::EnumWindows (MyEnumWindowsProc, 0); // <-- Ошибка здесь!
if (!b) {
 ShowMessage ("Что то не так =(");
}
}
//---------------------------------------------------------------------------
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
{
AnsiString s = (DWORD)hwnd;
for (int i = 0; i < g_lb->Count; i++) {
 if ( g_lb->Items->Strings [ i ] == s ) {
  return FALSE;
 }
}
g_lb->Items->Add ( s );
return TRUE;
}

Все больше ни чего не добовлял и проект был новый.
Во время компиляции получаю следующие ошибки:
[C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (__stdcall *)(void *,long)' to 'int (__stdcall *)()'
[C++ Error] Unit2.cpp(22): E2342 Type mismatch in parameter 'lpEnumFunc' (wanted 'int (__stdcall *)()', got 'int (__stdcall *)(void *,long)')

В чем дело подскажите!

Вернуться в Borland Developer Studio 2006