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

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

переход с Delphi5 на Delphi6


qwertXX ©   (2002-12-03 10:53:00) 

Доброе время суток! помогите решить проблемму: при установке компонента в Delphi6 (Delphi3-5 все проходит благополучно) выдается сообщение: "ambiguous overloaded call to "GetWindowThreadProcessId"".

в коде:
hMouseMoveHook := SetWindowsHookEx(WH_MOUSE, OnMouseMoveHook, 0,
GetWindowThreadProcessId(Application.Handle, nil));


qwertXX   (2002-12-03 12:15:00) [1]

> Skier
спасибо! с task работает


Skier   (2002-12-03 12:06:00) [2]

>qwertXX
GetWindowTask(...) тоже не проходит ?


qwertXX   (2002-12-03 12:01:00) [3]

ошибка в 6 и при:
hMouseMoveHook := SetWindowsHookEx(WH_MOUSE, OnMouseMoveHook, 0,
GetWindowThreadProcessId(Application.Handle, nil));
и при:
hMouseMoveHook := SetWindowsHookEx(WH_MOUSE, OnMouseMoveHook, 0,
GetWindowThreadProcessId(Application.Handle));
в 3-5: ...GetWindowThreadProcessId(Application.Handle, nil))...
проходит


Skier   (2002-12-03 11:45:00) [4]

>qwertXX

hMouseMoveHook := SetWindowsHookEx(WH_MOUSE, OnMouseMoveHook, 0,
GetWindowTask(Application.Handle)); ?


qwertXX   (2002-12-03 11:39:00) [5]

>Skier

нигде не объявлена.
Тот же компонент ставится в delphi3-5, а в 6 выдает эту ошибку.


Skier   (2002-12-03 11:28:00) [6]

>qwertXX


> не помогло


Странно...
Вот объявления этих функций в Windows.pas

function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: Pointer = nil): DWORD; stdcall; overload;

function GetWindowThreadProcessId(hWnd: HWND; var dwProcessId: DWORD): DWORD; stdcall; overload;


а вот кусок из метода TScreen.SetCursor

//.............................
if (Handle <> 0) and
(GetWindowThreadProcessId(Handle, nil)=GetCurrentThreadId) then
//.............................

Может у тебя где-то ещё объявлена GetWindowThreadProcessId ?


qwertXX   (2002-12-03 11:21:00) [7]

>Skier
не помогло


Skier   (2002-12-03 11:03:00) [8]

>qwertXX

Попробуй так :

hMouseMoveHook := SetWindowsHookEx(WH_MOUSE, OnMouseMoveHook, 0,
GetWindowThreadProcessId(Application.Handle));


Наверх

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