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