imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 13.09.2005, 07:26     # 1
vitalikus123
Guest
 
Сообщения: n/a

Надоумте нерадивого, а то проблемы визуализации замучали уже! Вопрос по Visual C++

Суть в следующем:
есть у меня проект состоящий из двух форм и одной DOS-кой программулины, которая запускается по таймеру. Так вот, при запуске этой малютки у меня происходило мерцание окон и смена стиля курсора.
Вопрос!
Как мне одну из форм оставлять постоянно активной, и сохранять стиль курсора. (Поясню - ради чего это надо. Просто при перемещении бегунка слитера хочется добиться непрерывного эффекта, а не рывкообразного из-за смены активных окон).
И еще вопрос!
Как лучше хранить данные, если к ним необходим одновремменный доступ из нескольких приложений, одно из них досовское?



P.S. Заранеее большое спасибо.
 
Старый 13.09.2005, 10:40     # 2
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Попробуй DOS- программу запускать в отдельном потоке. А данные можешь хранить в какой-либо базе.
__________________
Best Regards
alexey_ma вне форума  
Старый 13.09.2005, 18:27     # 3
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
А зачем досовская программа-то?
Что она такого делает такого, чего нельзя возложить на отделный поток?
2 alexey_ma
посмотрю я на тебя как ты будешь как какой-либо базе из досовской 16-битной софтины обращаться, да еще так чтобы это не помешала одновременно делать это же из виндового потока.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 13.09.2005, 19:04     # 4
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Цитата:
PSyton:
посмотрю я на тебя как ты будешь как какой-либо базе из досовской 16-битной софтины обращаться, да еще так чтобы это не помешала одновременно делать это же из виндового потока.
Совсем не уверен что речь идет именно о 16-битном приложении. По всей видимости если есть доступ к коду приложения это скорее всего обычное консольное приложение, а там никаких проблем нет.
Любое разделение данных между процессами/потоками потребует синхронизации. Так что мешать потоки будут обязательно, не важно консольное это приложение или вин. приложение.
__________________
Best Regards
alexey_ma вне форума  
Старый 14.09.2005, 00:02     # 5
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Цитата:
alexey_ma:
Любое разделение данных между процессами/потоками потребует синхронизации. Так что мешать потоки будут обязательно
ну если грамотно делать синхронизацию, т.е. грамотно построить архитектуру, то вполне мирно они будут ужваться Ессесно синхронизировать нужно только те методы, которые будут доступаться и менять какие-то единые для потоков данные, которых, в свою очередь, желательно делать как можно меньше, т.к. синхронизация - это довольно дорогая штука А вот если речь идет о разных процессах, тут тоже есть момент, каждый процесс идет в своем адресном пространстве и есть кое какие требования к безопасности... вот Кстати на 64 битной платформе, кто-нить интересовался этими вопросами, а то я давно системным кодингом не занимался...
А стей он топ делается через Вин АПИ, по-моему...
А нельзя запихать все в одно окно?
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 14.09.2005, 06:23     # 6
vitalikus123
Guest
 
Сообщения: n/a

Dos-приложение необходимо потому, что через него идет управление платой, которая управляет двигателем, а к ней дров нету.А одновременный доступ Win и DOS-приложений к неким данным необходим для того, чтобы можно было изменять параметры работы двигателя, и хотя DOS-приложение запускается по таймеру, но это все на столько шустро, а приостановить работу нельзя, то возникает конфликт совместного доступа к файлу данных. Поэтому я и спрашивал, как можно хранить эти данные?
 
Старый 14.09.2005, 10:46     # 7
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
а что, нельзя дергать эту дос программу из виндовой просто с набором параметров? или исходников нет?... но в любом случае это не выход... лучше написать драйвер
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 14.09.2005, 10:57     # 8
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Цитата:
/7y3uK:
А стей он топ делается через Вин АПИ, по-моему...
OnTop window не избавит совсем от мерцания окон потому - что консоль при старте все равно перехватит фокус на какое-то время. Если бы это было обычное окно то-можно было-бы показать его без получения им фокуса(создав окно со стилем WS_EX_TOOLWINDOW и показав его функцией SetWindowPos указав в параметах SWP_NOACTIVATE | SWP_SHOWWINDOW), а консоль ну незнаю...
Цитата:
/7y3uK:
ну если грамотно делать синхронизацию, т.е. грамотно построить архитектуру, то вполне мирно они будут ужваться Ессесно синхронизировать нужно только те методы, которые будут доступаться и менять какие-то единые для потоков данные, которых, в свою очередь, желательно делать как можно меньше, т.к. синхронизация - это довольно дорогая штука
Не, мы неграмотные - мы тупые. Синхронизация подразумевает ожидания одним потоком другого. Вы конечно ,уважаемый, можете грамотно минимизировать это взаимное влияние потоков, но совсем избавиться от него не получится, иначе нет вообще смысла в синхронизации, если можно "грамотно" без нее обойтись
__________________
Best Regards
alexey_ma вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:29.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.