= Сообщение: 69 из 1947 =========================================== RU.BINKD = От : Roman Trunov 2:5022/2 24 Oct 13 11:26:18 Кому : Pavel Gulchouck 24 Oct 13 11:26:18 Тема : То ли лыжи не едут... FGHI : area://RU.BINKD?msgid=2:5022/2+52694546 На : area://RU.BINKD?msgid=2:463/68+52683e0f = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.BINKD?msgid=2:5057/77@fidonet+526c04b2 ============================================================================== Hello Pavel!
RT>> Починил я этот findfirst и еще пачку мелких ворнингов (вот только RT>> случайно шлепнул все одним коммитом с левым описанием).
PG> Левое описание - можно непосредственно в HISTORY изменить.
Там в основном правилась кучка мелких ворнингов, недостойных отдельного описания. Из важного только одна ошибка с uintmax_t, которая выстрелила бы в будущем с файлами больше 2G.
RT>> Выяснилось, что spawn и beginthread теперь тоже возвращают intptr_t. RT>> Hу это еще можно пережить (там вроде только на ошибку / -1 RT>> проверяется, сработает и так).
PG> Точно сработает? PG> -1 для указателя - не вполне естественное значение.
Hу, честно говоря, не точно :) Я внимательно в этот район еще не смотрел. Если результат нигде не используется, а только проверяется на "-1", то все будет хорошо (функция возвращает FFFFFFFFFFFFFFFF, мы проверям младшее слово на FFFFFFFF - все работает, указателя с таким младшим словом в винде не бывает). Только там небось написано что-то типа "if (pid < 0)", а вот старший бит в младшем слове запросто может оказаться установлен, получится меньше нуля... Впрочем, если там на самом деле возвращается не указатель, а HANDLE - см. ниже.
RT>> А вот что хуже - то, что socket() в винде возвращает не int, а RT>> SOCKET, который - сюрприз!- теперь тоже intptr_t, т.е. 64 бита.
PG> Эх... :(
Похоже, можно просто забить. Если верить Марку Руссиновичу и авторам OpenSSL, на всех NT-системах SOCKET на самом деле есть HANDLE некого файла. А HANDLE на NT - просто индекс в некой ядерной таблице, гарантированно влезающий в 32 бита. В OpenSSL забили и все работает.
Roman
--- GoldED+/W32 1.1.0 * Origin: I am not JRRT, I am just RT (2:5022/2)