![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
переход с 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));