Публикации от Александр Алексеев

Почему системный файловый диалог меняет текущий каталог?

Это перевод Why does the common file dialog change the current directory? Автор: Реймонд Чен. Когда вы перемещаетесь по папкам в системном диалоге открытия (или сохранения) файлов, то диалог вызывает функцию Set­Current­Directory, передавая ей каталог, в который вы перешли (эй, не заставляйте меня возрождать уголок зануды). Окей, возможно, вашей первой реакцией будет: «Правда? Я вообще […]

Читать на сайте автора.

Ваш отладочный код может быть уязвимостью в безопасности: подгрузка опциональной отладочной DLL без указания полного пути

Это перевод Your debugging code can be a security vulnerability: Loading optional debugging DLLs without a full path. Автор: Реймонд Чен. Запомните: плохих парней не заботит, если вы добавили код лишь для целей отладки. Если есть код — они его атакуют.Посмотрите на такой код: type TDocLoadingProc = procedure(Stream: TStream);var OnDocLoading: TDocLoadingProc;procedure LoadDebuggingHooks;var hmodDebug: HMODULE;begin hmodDebug […]

Читать на сайте автора.

Одна из причин, почему ShellExecute возвращает SE_ERR_ACCESSDENIED, а ShellExecuteEx возвращает ERROR_ACCESS_DENIED

Это перевод One possible reason why ShellExecute returns SE_ERR_ACCESSDENIED and ShellExecuteEx returns ERROR_ACCESS_DENIED. Автор: Реймонд Чен. (этот странный заголовок написан для поисковой оптимизации) Один клиент сообщил, что при вызове ShellExecute эта функция иногда завершалась с ошибкой SE_ERR_ACCESSDENIED (= 5) — в зависимости от того, что они пытались открыть (а если бы они использовали ShellExecuteEx, то […]

Читать на сайте автора.

На одну короткую минуту славы DirectX стал более популярным чем другое слово, заканчивающееся на X

Это перевод For a brief shining moment, DirectX was more popular than another word that ends in x. Автор: Реймонд Чен. В месяц сразу после выхода DirectX 3 слово «directx» стало самым популярным для поиска на microsoft.com. Само по себе, это не было столь удивительным. Удивительным было слово на шестом месте: «sex». Вы знаете, это […]

Читать на сайте автора.

Интерфейс пользователя + многопоточный апартмент = смерть

Это перевод User interface code + multi-threaded apartment = death. Автор: Реймонд Чен. Существуют однопоточные апартменты (single-threaded apartment) и многопоточные апартменты (multi-threaded apartment). Ну, сначала существовали только однопоточные… Нет, давайте начнём по-другому.Сначала в приложениях был только один поток. Вспомните, в 16-битной Windows не было потоков. Каждый процесс, программа и были тем, что сегодня мы называем […]

Читать на сайте автора.

Что если две программы сделают это? Практический экзамен

Это перевод What if two programs did this? Practical exam. Автор: Реймонд Чен. У клиента, который не читает этот блог, есть следующий вопрос. У нашего приложения есть требование: оно должно быть поверх всех других окон, даже если показываются окна со стилем topmost. Для этого в наших сообщениях WM_KILLFOCUS и WM_PAINT мы делаем наше окно topmost, […]

Читать на сайте автора.

В чём разница между каталогами и папками?

Это перевод What is the difference between a directory and a folder? Автор: Реймонд Чен. В Windows 95 появился Проводник Windows (Windows Explorer) и вместе ним — новый термин «папка» (folder). Чем папка отличается от каталога?Кто-то считает, что Windows 95 просто переименовала каталоги в папки, но это не совсем так. Проводник Windows позволяет вам просматривать […]

Читать на сайте автора.

Проклятие текущего каталога

Это перевод The curse of the current directory. Автор: Реймонд Чен. Текущий каталог — это и благо и проклятие. Это благо, потому что экономит вам набор текста (путём использования относительных путей). Это проклятие по всем остальным причинам.Корнем многих зол является то, что в семейство операционных систем Windows NT держит открытым описатель текущего каталога каждого процесса […]

Читать на сайте автора.

Технологические ипохондрики

Это перевод Technology hypochondriacs. Автор: Реймонд Чен. Я часто замечаю один феномен, который я буду называть «технологическая ипохондрия» — вера в то, что вы страдаете от проблемы (перевод поста), о которой только что прочитали (перевод поста). Для этого есть бородатый анекдот: К доктору пришёл один мужчина: «Доктор», — сказал он. — «Я просто уверен, что […]

Читать на сайте автора.

Что это за странные переменные окружения с =C:?

Это перевод What are these strange =C: environment variables? Автор: Реймонд Чен. Вы не увидите их при выполнении команды SET, но вы увидите их, если получите список переменных окружения сами, программным путём. К примеру, если вы напишете программу, которая получает список всех переменных окружения и выводит их на консоль, и запустите её из командной строки, […]

Читать на сайте автора.