информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Но лучше конечно забить на "многоздачный, коопедаративный" динозавр - 16-бит :-))) 05.06.01 17:00  Число просмотров: 703
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
А есть ли аналог fork() в Win16 Application? 04.06.01 20:13  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Собственно, нужно из основной программы создать еще один процесс и
заслать его в бэкграунд (но так чтобы он глобальную область переменных видел). Я читал, что в WinAPI32 это вроде функция
CreateProcess(...) делает. А вот в 16р не нашел чего-то...Может плохо искал.
А есть ли аналог fork() в Win16 Application? 04.06.01 20:48  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Собственно, нужно из основной программы создать еще один
> процесс и
> заслать его в бэкграунд (но так чтобы он глобальную область
> переменных видел). Я читал, что в WinAPI32 это вроде
> функция
> CreateProcess(...) делает. А вот в 16р не нашел
> чего-то...Может плохо искал.

для 16-битника - это WinExec, это я помню точно.
но навряд ли он разрешит разделять глобальные переменные, хотя для 16-бит это не проблема. для этой цели лучше объявить их в dll-ке. затем использовать маппинг.
но лучше, если тебе всего лишь нужен бакграунд работа, используй потоки, оды и переменные будут общими.
а подробнее узнай об этом в Help старых версиях С++
А нету! 05.06.01 11:37  
Автор: prop Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Собственно, нужно из основной программы создать еще
> один
> > процесс и
> > заслать его в бэкграунд (но так чтобы он глобальную
> область
> > переменных видел). Я читал, что в WinAPI32 это вроде
> > функция
> > CreateProcess(...) делает. А вот в 16р не нашел
> > чего-то...Может плохо искал.
>
> для 16-битника - это WinExec, это я помню точно.
> но навряд ли он разрешит разделять глобальные переменные,
> хотя для 16-бит это не проблема. для этой цели лучше
> объявить их в dll-ке. затем использовать маппинг.
> но лучше, если тебе всего лишь нужен бакграунд работа,
> используй потоки, оды и переменные будут общими.
> а подробнее узнай об этом в Help старых версиях С++

Если я правильно помню, fork() порождает копию вызывающего процесса и начинает его выполнение со следующей за fork() команды.
В win16 используется корпоратиная многозадачность - нет ни процессов, ни потоков (в привычном смысле) - есть один процесс и один поток - все остальное - т. наз. задачи, которые получают сообщения, что-то делают, и возвращают управление. Не вернул управление - все остальные таски висят. С глобальными переменными проблем нет - global heap один на всю систему, поэтому указатель действителен во всех задачах.
А если маппинг это CreateFileMapping - то его в Win16 тоже нет.
Может я и наврал чего - давно это было...
А нету! 05.06.01 15:37  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > Собственно, нужно из основной программы создать
> еще
> > один
> > > процесс и
> > > заслать его в бэкграунд (но так чтобы он
> глобальную
> > область
> > > переменных видел). Я читал, что в WinAPI32 это
> вроде
> > > функция
> > > CreateProcess(...) делает. А вот в 16р не нашел
> > > чего-то...Может плохо искал.
> >
> > для 16-битника - это WinExec, это я помню точно.
> > но навряд ли он разрешит разделять глобальные
> переменные,
> > хотя для 16-бит это не проблема. для этой цели лучше
> > объявить их в dll-ке. затем использовать маппинг.
> > но лучше, если тебе всего лишь нужен бакграунд работа,
> > используй потоки, оды и переменные будут общими.
> > а подробнее узнай об этом в Help старых версиях С++
>
> Если я правильно помню, fork() порождает копию вызывающего
> процесса и начинает его выполнение со следующей за fork()
> команды.
> В win16 используется корпоратиная многозадачность - нет ни
> процессов, ни потоков (в привычном смысле) - есть один
> процесс и один поток - все остальное - т. наз. задачи,
> которые получают сообщения, что-то делают, и возвращают
> управление. Не вернул управление - все остальные таски
> висят. С глобальными переменными проблем нет - global heap
> один на всю систему, поэтому указатель действителен во всех
> задачах.
> А если маппинг это CreateFileMapping - то его в Win16 тоже
> нет.
> Может я и наврал чего - давно это было...

Понял, спасибо всем. И все-таки глупый вопрос.
А если я прость из WinMain() создам дочернее окно с помощью CreateWindow ну например как инвизибл или с нулевыми размерами. Понятно что оно не есть копия процесса, но для моих целей пойдет??? ( будет невидимым и зрячим на global heap).
<без заголовка> 05.06.01 16:20  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
Понял, спасибо всем. И все-таки глупый вопрос.
> А если я прость из WinMain() создам дочернее окно с помощью
> CreateWindow ну например как инвизибл или с нулевыми
> размерами. Понятно что оно не есть копия процесса, но для
> моих целей пойдет??? ( будет невидимым и зрячим на global
> heap).
Нет это из другой оперы.
Понятно что аналога fork() в Win16 нет ...есть WinExec(),
если хочешь поиметь совместный доступ к каким то переменным из многих
копий программы - сделай как рекомендовал kabanchik
а именно - создай DLL в которой обявлены все твои глобальные переменные а
потом экспортируй их. Потом загрузи DLL в своем exe и импортируй энти переменные ... подробности ищи в описании *.def файлов в хелпах для Win16
Но лучше конечно забить на "многоздачный, коопедаративный" динозавр - 16-бит :-))) 05.06.01 17:00  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Понимаешь, такой уж расклад в этот раз получился... 06.06.01 20:24  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
корпоратиная многозадачность ??? 05.06.01 15:02  
Автор: - для корпоративных пользователей? :-))) Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > Собственно, нужно из основной программы создать
> еще
> > один
> > > процесс и
> > > заслать его в бэкграунд (но так чтобы он
> глобальную
> > область
> > > переменных видел). Я читал, что в WinAPI32 это
> вроде
> > > функция
> > > CreateProcess(...) делает. А вот в 16р не нашел
> > > чего-то...Может плохо искал.
> >
> > для 16-битника - это WinExec, это я помню точно.
> > но навряд ли он разрешит разделять глобальные
> переменные,
> > хотя для 16-бит это не проблема. для этой цели лучше
> > объявить их в dll-ке. затем использовать маппинг.
> > но лучше, если тебе всего лишь нужен бакграунд работа,
> > используй потоки, оды и переменные будут общими.
> > а подробнее узнай об этом в Help старых версиях С++
>
> Если я правильно помню, fork() порождает копию вызывающего
> процесса и начинает его выполнение со следующей за fork()
> команды.
> В win16 используется корпоратиная многозадачность - нет ни
> процессов, ни потоков (в привычном смысле) - есть один
> процесс и один поток - все остальное - т. наз. задачи,
> которые получают сообщения, что-то делают, и возвращают
> управление. Не вернул управление - все остальные таски
> висят. С глобальными переменными проблем нет - global heap
> один на всю систему, поэтому указатель действителен во всех
> задачах.
> А если маппинг это CreateFileMapping - то его в Win16 тоже
> нет.
> Может я и наврал чего - давно это было...
Это вероятно сильно развитая кооперативная многозадачность ... то есть когда кооператив "рога и копыта" вырастает до размеров корпорации "Золотой теленок" :))))) 05.06.01 15:18  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
:P)))))) 05.06.01 16:36  
Автор: prop Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach