если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
64битна ли 64хбитная винда? 12.05.04 02:40
Автор: Killer{R} <Dmitry> Статус: Elderman
просматривая пресловутые сырцы винды нашел в private\ntos\w32\ntuser\kernel\class.c такой вот фрагмент:
#ifdef _WIN64
DWORD xxxSetClassLong(
PWND pwnd,
int index,
DWORD value,
BOOL bAnsi)
{
DWORD dwOld;
PCLS pcls;
CheckLock(pwnd);
CheckCritIn();
if (GETPTI(pwnd)->ppi != PpiCurrent()) {
RIPERR1(ERROR_ACCESS_DENIED, RIP_WARNING, "SetClassLong: different process: index 0x%lx", index);
return 0;
}
if (index < 0) {
if (index < INDEX_OFFSET| afClassDWord[index - INDEX_OFFSET] > sizeof(DWORD)) {
RIPERR1(ERROR_INVALID_INDEX, RIP_WARNING, "SetClassLong: invalid index %d", index);
return 0;
}
return (DWORD)xxxSetClassData(pwnd, index, value, bAnsi);
} else {
pcls = pwnd->pcls->pclsBase;
if (index + (int)sizeof(DWORD) > pcls->cbclsExtra) {
RIPERR0(ERROR_INVALID_INDEX, RIP_WARNING, "SetClassLong: invalid index");
return 0;
} else {
DWORD UNALIGNED *pudw;
pudw = (DWORD UNALIGNED *)((BYTE *)(pcls + 1) + index);
dwOld = *pudw;
*pudw = value;
pcls = pcls->pclsClone;
while (pcls != NULL) {
pudw = (DWORD UNALIGNED *)((BYTE *)(pcls + 1) + index);
*pudw = value;
pcls = pcls->pclsNext;
}
return dwOld;
}
}
}
#endif
Вообще там больше практически нету ничего насчет WIN64 и может потом все поправят но все равно количество DWORD'ов в 64х битном коде немного напрягает Ж)