Программируя в Delphi очень желательно записывать строковые данные в реестр в соответствии с документацией.
Показаны сообщения с ярлыком winapi. Показать все сообщения
Показаны сообщения с ярлыком winapi. Показать все сообщения
вторник, 1 июня 2010 г.
вторник, 11 мая 2010 г.
Обработка ошибок и GetLastError()
Когда Вы вызываете функцию Windows, она проверяет переданные ей параметры, а затем пытается выполнить свою работу. Если Вы передали недопустимый параметр или если данную операцию нельзя выполнить по какой-то другой причине, она возвращает значение, свидетельствующее об ошибке.
понедельник, 3 мая 2010 г.
Маленькая особенность OutputDebugString
Начиная с Windows 2000, все операционные системы Microsoft линейки NT целиком и полностью построены на Unicode. Все ключевые функции для создания окон, вывода текста, операций со строками и т.д. требуют Unicode-строк. Если какой-то функции Windows передается ANSI-строка, она сначала преобразуется в Unicode и лишь потом передается операционной системе.
В реализации это выглядит так: для функции доступной через API может существовать две версии: Ansi (принимает строки ANSI) и Wide (принимает строки Unicode) - например CreateProcessA и CreateProcessW. И Ansi-версия является оболочкой (шлюзом) к Wide.
Но оказывается есть и исключения...
В реализации это выглядит так: для функции доступной через API может существовать две версии: Ansi (принимает строки ANSI) и Wide (принимает строки Unicode) - например CreateProcessA и CreateProcessW. И Ansi-версия является оболочкой (шлюзом) к Wide.
Но оказывается есть и исключения...
четверг, 15 апреля 2010 г.
SHFileOperation и двойной бэкслеш в MS Vista+
Код Windows Vista был значительно переработан по сравнению с XP. Я думаю, это хорошо - внутренние ошибки исправляются (а на их место приходят другие - но это уже совсем другая история :)).
И внешние проявление внутренних переработок могут быть весьма многообразны и совершенно не очевидны.
Здесь я расскажу об одной особенности функции SHFileOperation, которая проявляется на Висте и выше.
И внешние проявление внутренних переработок могут быть весьма многообразны и совершенно не очевидны.
Здесь я расскажу об одной особенности функции SHFileOperation, которая проявляется на Висте и выше.
понедельник, 12 апреля 2010 г.
Deadlock при вызове CoRegisterClassObject в DllMain
В процессе разработки одного плагина для браузера Chrome было замечено, вызов CoRegisterClassObject (ole32.dll) в точке входа динамической библиотеки (DLLMain) в Microsoft Windows Vista/7 приводит к зависанию потока.
Эксперимент показал, что эта проблема может возникнуть не только с хромом.
Эксперимент показал, что эта проблема может возникнуть не только с хромом.
воскресенье, 11 апреля 2010 г.
Особенность InitCommonControlsEx в Windows XP
В Windows XP вызов функции DialogBoxParamW может сразу возвращать управление вместо отображения диалогового окна, при выполнении следующих условий:
- у исполняемого файла есть манифест с name="Microsoft.Windows.Common-Controls" в <assemblyIdentity>
- в таблице импорта нет ссылок на comctl32.dll
суббота, 10 апреля 2010 г.
CreateToolhelp32Snapshot и многопоточность
В процессе поиска причины, по который программа аварийно завершается с ошибкой (другими словами просто вылетает), возникло предположение, что функция CreateToolhelp32Snapshot потоко-небезопасна.
Подписаться на:
Сообщения (Atom)