Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
ВнизНекоторые замечания к статье Найти похожие ветки
← →
Иван Шихалев (2002-02-04 17:05) [5]> Другой пример - разработка привычных GUI
> приложений в некоторых СП хотя и возможна,
> но крайне затруднена и обременительна
> (писать на чистом Win API, конечно, можно,
> но не многие это любят - а большиство сейчас
> просто не умеет). Поэтому экономически
> целесообразно разработать графический интерфейс,
> например, на Delphi, и использовать его
> в существующих программах. Именно такой
> случай я и имею в виду, говоря об экспорте форм из DLL.
Можно возвращать неTForm
, а егоHandle
и использовать механизм сообщений. Что снимет, заодно, проблемы с потоками.
> Насчет соглашения о вызовах stdcall,
> боюсь, что вы в данном случае не правы.
> Если вы разрабатываете программу на С,
> то по соглашению о вызовах stdcall,
> вызываемая функция очищает стек -
> за исключением случая, когда она
> принимает переменное число параметров.
> В этом случае вызываемая функция просто
> не знает, какое количество аргументов
> ей передали! Вызывающая функци обязана
> при вызове функций с переменным числом
> аргументов сама зачищать стек после вызова.
Кривизна компилятора C++.stdcall
означает, что стек освобождает функция. Для вызова тех функций C, которые требуют, чтобы освобождала вызывающая программа требуетсяcdecl
.
> Именно из-за особенностей работы
> Delphi-программ с графическим контекстом,
> практически никогда нельзя доступаться
> (точнее, модифицировать) графические компоненты
> ИЗ ВТОРИЧНЫХ ПОТОКОВ без Delphi-синхронизации
> (не спроста рекомендуют все "заворачивать"
> в Synchronize метод потока,
Как ни странно :) без синхронизации потоков нельзя обойтись, даже если писать на чистом API.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c