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

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

Как объявить SetWindowLongPtr? [D7, XP]


IPranker ©   (2011-02-24 07:07:00) 

Всем привет!

Объявляю так:


function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): Longint; stdcall;  external user32 name 'GetWindowLongPtrA';
function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; stdcall; external user32 name 'SetWindowLongPtrA';

implementation


Пишет: "Точка входа в процедуру... ... не найдена".


Rouse_   (2011-02-27 12:44:00) [1]


> Германн ©   (27.02.11 03:29) [7]
> Азы работы с "мсдн для дельфи" нигде не описаны. Там всегда
> только либо "русская рулетка", либо полный п....ц. Имхо.

Ну я блин даже не знаю что тут ответить :)
WinAPI не совсем Дельфи как бы :)


Игорь Шевченко   (2011-02-27 11:34:00) [2]


> В Win 64 - это SetWindowLong какбЭ не работает.


Программа для Win64 на Delphi 7 не получится. Только для Win32. Поэтому сама тема странна.


IPranker   (2011-02-27 07:28:00) [3]


>  abb777 ©   (26.02.11 22:57) [5]
>
> Что-то я не пойму.. а чем не подходит банальное uses Windows?
>
>


В Win 64 - это SetWindowLong какбЭ не работает.

>  Rouse_ ©   (27.02.11 03:16) [6]
Уже разобрался.


> Германн ©   (27.02.11 03:29) [7]


> Азы работы с "мсдн для дельфи" нигде не описаны.


Really?


Германн   (2011-02-27 03:29:00) [4]


> Азы чтоль изучайте в конце то концов, товарищи программисты

Азы работы с "мсдн для дельфи" нигде не описаны. Там всегда только либо "русская рулетка", либо полный п....ц. Имхо.


Rouse_   (2011-02-27 03:16:00) [5]

Прежде чем начать работу в АПИ следует изучить документацию по оному, где изречено : Note ... When compiling for 32-bit Windows, SetWindowLongPtr is defined as a call to the SetWindowLong function.
Азы чтоль изучайте в конце то концов, товарищи программисты:
http://msdn.microsoft.com/en-us/library/ms644898%28VS.85%29.aspx


abb777   (2011-02-26 22:57:00) [6]

Что-то я не пойму.. а чем не подходит банальное uses Windows?

unit Windows:
...............
function SetWindowLong; external user32 name 'SetWindowLongA';
function SetWindowLongA; external user32 name 'SetWindowLongA';
function SetWindowLongW; external user32 name 'SetWindowLongW';
.................

И нет никаких SetWindowLong PtrA

Вы, видимо, не понимаете, что значит
#define GetWindowLongPtrA   GetWindowLongA


IPranker   (2011-02-24 17:09:00) [7]

Так я не понял, объявление SetWindowLong экспортирует 'SetWindowLongA'.
А SetWindowLongPtr что тоже экспортирует 'SetWindowLongA'?
Одно и то же получается?


brother   (2011-02-24 09:46:00) [8]

а до конца дочитать? помойму это оно:

32-bit support

Function is defined as follows in WinUser.h.

#ifdef _WIN64

Omission

#else  /* _WIN64 */

#define GetWindowLongPtrA  GetWindowLongA
#define GetWindowLongPtrW   GetWindowLongW
#ifdef UNICODE
#define GetWindowLongPtr  GetWindowLongPtrW
#else
#define GetWindowLongPtr  GetWindowLongPtrA
#endif // !UNICODE

#define SetWindowLongPtrA   SetWindowLongA
#define SetWindowLongPtrW   SetWindowLongW
#ifdef UNICODE
#define SetWindowLongPtr  SetWindowLongPtrW
#else
#define SetWindowLongPtr  SetWindowLongPtrA
#endif // !UNICODE

#endif /* _WIN64 */


IPranker   (2011-02-24 07:49:00) [9]

См. Unicode and ANSI names
http://msdn.microsoft.com/en-us/library/ms633585%28v=vs.85%29.aspx


Palladin   (2011-02-24 07:38:00) [10]

и с чего ты взял что есть GetWinfowLongPtrA ?


Наверх

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