Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-90666
Delphimun
2002-01-06 09:51
2002.02.28
Как послать e-mail, чтобы пользователь даже не знал об этом?


1-90609
dim2001
2002-02-08 18:51
2002.02.28
Какая исключительная ситуация происходит ?


1-90562
SkyR
2002-02-08 01:50
2002.02.28
TQuickReport


4-90696
Dimzel
2001-12-27 17:13
2002.02.28
Как Дебаггерить DLL В Delphi?


14-90660
TcP
2002-01-15 15:44
2002.02.28
API и Timer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский