= Сообщение: 83 из 1947 =========================================== RU.BINKD = От : Roman Trunov 2:5022/2 08 Nov 13 10:11:44 Кому : All 08 Nov 13 10:11:44 Тема : Итого... FGHI : area://RU.BINKD?msgid=2:5022/2+527d05c4 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.BINKD?msgid=2:5057/77.1@fidonet+527caf86 ============================================================================== Hello All!
Вычистил еще кучку atol и его производных навроде strtoul из разных мест типа докачки. Теперь файлы 2G+ под Win32 работают "из коробки" при сборке MSVC. Пробовал собирать MSVC 2005 и 2010, других нет (ну, есть еще 2000, но это нынче такой древний зверь, что вряд ли им кто-то, кроме меня, еще пользуется. Впрочем, при желании можно и под него заточить). Другие версии MSVC могут потребовать небольшой коррекции проверки версии компилятора в sys.h по факту появления-отсутствия чего-то именно в этой версии, там все тривиально.
Hасколько я помню, собранное MSVC 2010 не работает под Win2K, поэтому его и более новые не рекомендую.
Все возможные опции сборки не пробовал (перл даже и не пытался), если что - будем смотреть на месте.
64-битные сборки под Windows пока лучше не делать, нужно еще разобраться с BeginThread и spawn, которые также возвращают 64-битный результат, а не int pid, как думает код.
Режим pipe под MSVC вызывает у меня большие сомнения. Сокет - это не файл. "int handle" у функций read/write и SOCKET (он же HANDLE) стека - абсолютно разные типы, под 64 бита - даже разной ширины. Hужно проверять, не перепуталось ли там чего. Сейчас там из-за этого как минимум кучка warining'ов на read/write. В run3 возможно утекают хэндлы (spawn процесса в фоновом режиме на самом деле возвращает открытый HANDLE на этот child-процесс, который вроде бы не закрывается - или в винде все-таки есть аналог SIGCHLD?)
Roman
--- GoldED+/W32 1.1.0 * Origin: ...fwrote(). That's the past tense of fwrite() (2:5022/2)