A.I.M. Jagged Alliance2

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
19.09.2019 в 17:48:07

Главная Главная Помощь Помощь Поиск Поиск Участники Участники Вход Вход Регистрация Регистрация
A.I.M. « С++ Вопросы и ответы. »
   A.I.M.
   Генерал
   Ъ и Ь
(Модераторы: Zed, cha, Снайпер)
   С++ Вопросы и ответы.
« Предыдущая Тема | Следующая Тема »
  Тема:  С++ Вопросы и ответы.             Страниц: 1 2 3 4 5 6 Прочитано 21560 раз
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #50 от 30.07.2009 в 00:56:52 »

2Force_Majeure: VLD, который Visual Leak Detector. Использую уже давно и это пока что лучшее что нашёл, очень эффективная штука. Последняя версия поставляется в виде ДЛЛки, у меня не работает, узаю более старую в виде либы. Абсолютно бесплатно.
Зарегистрирован

Don't worry, be happy.
Force_Majeure
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +526
Re: С++
« Ответ #51 от 30.07.2009 в 02:31:39 »

2jarni:
Спасибо! Вроде то что надо (очевидное, во всяком случае, ловит :) ). 1.0 версия юзабельна или есть позднее?
Зарегистрирован

bayan4.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #52 от 30.07.2009 в 02:44:53 »

2Force_Majeure: Последняя вроде 1.9d. Я юзаю 1,0, хотя в хэдэре указано это: Id: vld.h,v 1.15.2.1 2005/08/03 23:13:47 dmouldin. Знаю точно что 1,9д у меня не работала, студия ругалась на то что не может загрузить дллку.
Зарегистрирован

Don't worry, be happy.
Force_Majeure
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +526
Re: С++
« Ответ #53 от 30.07.2009 в 19:25:19 »

2jarni:  
Сенкс, значит будем юзать 1.0 :)
Зарегистрирован

bayan4.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #54 от 31.07.2009 в 05:37:40 »

Господа, кто с гцц работал? А еще лучше с MinGW. Как там статически библиотеки в екзешник влинковать? А то я тут попробовал освоить Qt и нарвался на необходимость поставлять вместе с приложением и библиотеки, чего не хотелось бы.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #55 от 31.07.2009 в 08:30:34 »

2Artem13: С гцц сейчас работаю. Статические это которые .а? Если да то там есть переключатель -Lпапка, или -lконкретная библиотека. Для уточнения прочитай о них.
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #56 от 01.08.2009 в 03:00:42 »

хиъ2хсщдщк=Кувъофктшх.сщдщкъЖх.иъ Ябы еще был оченно благодарен за линк на русскоязычный ресурс по гцц...
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #57 от 01.08.2009 в 03:06:32 »

2Artem13:  
Quote:
хиъ2хсщдщк=Кувъофктшх.сщдщкъЖх.иъ

Интересно у тебя получилось :).
Неподскажу потому что не знаю, пользую в первую очередь английские мануалы :). Ещё такой вопрос, тебе гцц под винду нужен? Я им по линухом пользуюсь. Хотя синтаксис командной строки не должен отличатся никак, просто вместо *.а файлов нужно ставить *.либ.
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: Околокомпухтерный хумор
« Ответ #58 от 10.02.2011 в 00:11:13 »

unsigned short year,month,day;
TDateTime dt = 0;
dt.DecodeDate(&year,&month,&day);
MessageBox(NULL,(IntToStr(day)+"."+IntToStr(month)+"."+IntToStr(year)).c _str(),"",NULL);
 
30.12.1899
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: Околокомпухтерный хумор
« Ответ #59 от 10.02.2011 в 00:39:23 »

2Korchy: Что такое TDateTime? Я не знаю что для него означает 0, у каждого своя имплементация. Может я неточно выразился - не виделя я других точек отсчёта времени для системы кроме 1601 и 1970 годов. Конечно что такие точки я видел в других программах (из того что сходу вспомню, так это класс для презентации времени в БД Firebird, а если точнее в его С++ обёртке IBPP::Date. Там 0 соответствует 31.12.1899, кстати на один день отличается от того что ты привёл.)
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: Околокомпухтерный хумор
« Ответ #60 от 10.02.2011 в 02:32:15 »

The TDateTime class inherits a val data member declared as a double that holds the date-time value. The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of a TDateTime value is the time of day.
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: Околокомпухтерный хумор
« Ответ #61 от 10.02.2011 в 03:17:09 »

2Korchy: Ага, эти из Делфи. Спс.
Offtop:
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: Околокомпухтерный хумор
« Ответ #62 от 10.02.2011 в 03:29:21 »

10.02.2011 в 03:17:09, jarni писал(a):
FILETIME (винда)

Это, я так понял, структура для 64 битных систем.
Вообще, сколько я помню, дата хранилась во флоате или дабле. И считалась с 1900 года. Вот с той же msdn http://msdn.microsoft.com/ru-ru/library/82ab7w69.aspx
 
upd: ради любопытства посмотрел стандарт iso, который за даты-время отвечает, не нашел там никаких указаний на то, что считать нулевой датой. Так что можно писать свои функции и они будут на равных с микросовтовскими :)
« Изменён в : 10.02.2011 в 03:50:38 пользователем: Korchy » Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: Околокомпухтерный хумор
« Ответ #63 от 10.02.2011 в 03:59:03 »

2Korchy: Ответил в другой ветке, потому что здесь этому обсуждению не место.
 
http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=hardnsoft;action=display;...
Зарегистрирован

Don't worry, be happy.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #64 от 10.02.2011 в 03:58:08 »

Этот пост относится к посту из другой темы http://forum.ja2.su/cgi-bin/yabb/YaBB.pl?board=hardnsoft;action=display;...
 
2Korchy:  10.02.2011 в 03:29:21, Korchy писал(a):
Это, я так понял, структура для 64 битных систем.
Нет, это структура ещё со времён Win95, создана для перевода досового времени на более "широкий" тип, хранит информацию о количестве 0,1 мс интервалов прошедших от 1601 года. Именно эту структуру возвращает WIN32 API при запросе на время создания, последнего изменения и чтения файла. Кстати имя её может сбить с толку, она используется ещё во многих местах никак не связаных с файлами, например в WIN32 API функции для получения времени создания процесса, смерти процесса, и времени проведённого процессом в ядре и в юзер-режиме.
 
10.02.2011 в 03:29:21, Korchy писал(a):
Вообще, сколько я помню, дата хранилась во флоате или дабле. И считалась с 1900 года. Вот с той же msdn http://msdn.microsoft.com/ru-ru/library/82ab7w69.aspx
Ну, поскольку я никогда не писал на Делфи, и не использовал даты в МФЦ, то могу сказать что "сколько я помню, подробная дата хранилась в структуре SYSTEMTIME" :). На низком уровне нету классов-обёрток для времени, именно поэтому и используются стартовые даты указанные системой, разработчиками ядра ОС, а не программистами этих самых обёрток. Почему они решили изменить в рамках одной платформы это время для меня остаётся загадкой.
 
З.Ы. SYSTEMTIME я написал не по ошибке, это просто читабельный формат в который переводится FILETIME вызовом WIN32 API FileTimeToSystemTime.
 
Зарегистрирован

Don't worry, be happy.
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #65 от 10.02.2011 в 04:07:15 »

2Korchy: 10.02.2011 в 03:29:21, Korchy писал(a):
upd: ради любопытства посмотрел стандарт iso, который за даты-время отвечает, не нашел там никаких указаний на то, что считать нулевой датой. Так что можно писать свои функции и они будут на равных с микросовтовскими
И да и нет. Как я уже говорил, при таком раскладе нельзя передавать время в низкоуровневом виде, тоесть например в виде числа 666. Потому что никому кроме тебя не будет известно что это число означает: 666 секунд от дати 0.0.0000, 666 миллисекунд от 1.1.1601, 666 дней от 23.5.2051. Конечно если это число не выйдет за рамки твоей программы то всё в порядке, но если его нужко передавать третьей стороне которую пишешь не ты, то уже надо договариватся о формате, тоесть хотя бы сказать что это число типа FILETIME или типа int для класса TDateTime. В последнем случае надо быть уверенным что получатель тоже использует TDateTime, потому что если нет то ему придётся писать собственную обёртку для перевода этого числа в читабельный формат или хотя бы в системный формат FILETIME, который в рамках всей линейки Вин означает одно и тоже и доступен всем кто использует WIN32 API.
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #66 от 10.02.2011 в 04:35:09 »

10.02.2011 в 03:58:08, jarni писал(a):
Нет, это структура ещё со времён Win95

Угу, понял. Когда вбил в поиске, первым мне выскочил именно 64 битный вариант.
 
 10.02.2011 в 03:58:08, jarni писал(a):
Ну, поскольку я никогда не писал на Делфи, и не использовал даты в МФЦ,
 
но если его нужко передавать третьей стороне которую пишешь не ты, то уже надо договариватся о формате

А мне с Win API и соответственно с systemtyme не доводилось сталкиваться. Получается так как я и говорил - без четкого указания в стандарте каждый воротит как хочет :)
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #67 от 10.02.2011 в 04:40:16 »

2Korchy:  10.02.2011 в 04:35:09, Korchy писал(a):
без четкого указания в стандарте каждый воротит как хочет
И к сожалению это создаёт кучу геморроя писателям кросплатформенного кода. :(
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #68 от 28.02.2011 в 23:32:30 »

Народ, кто с Билдером/Дельфями знаком, подскажите:
Есть там компонент ListVeiw - как (и можно ли) поменять цвет шрифта одной строки? Стиль vsReport.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #69 от 01.03.2011 в 05:08:27 »

28.02.2011 в 23:32:30, Artem13 писал(a):
как (и можно ли) поменять цвет шрифта одной строки

Сам с таким не сталкивался, но вроде бы подобное нужно делать самому через перерисовку в OnPaint
 
upd:
Да, точно в OnDrawItem
Sender.Canvas.Font.Color = xxx;
« Изменён в : 01.03.2011 в 05:15:56 пользователем: Korchy » Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #70 от 01.03.2011 в 19:33:24 »

2Korchy: сенькс, попробую.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #71 от 22.03.2011 в 22:48:53 »

Еще вопрос - мну заклинило, никак не могу вспомнить, какая функция обрабатывает запросы окна. Конкретно задача - во время длительного цикла обрабатывать сообщения окна (без использования второго потока).
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #72 от 22.03.2011 в 22:55:42 »

2Artem13:  
Code:
     // Main message loop:
      while (GetMessage(&msg, NULL, 0, 0))
      {
            if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
            {
                  TranslateMessage(&msg);
                  DispatchMessage(&msg);
            }
      }
.
.
.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 int wmId, wmEvent;
 PAINTSTRUCT ps;
 HDC hdc;
 
 switch (message)
 {
 case WM_COMMAND:
  wmId    = LOWORD(wParam);
  wmEvent = HIWORD(wParam);
  // Parse the menu selections:
  switch (wmId)
  {
  case IDM_ABOUT:
   DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
   break;
  case IDM_EXIT:
   DestroyWindow(hWnd);
   break;
  default:
   return DefWindowProc(hWnd, message, wParam, lParam);
  }
  break;
 case WM_PAINT:
  hdc = BeginPaint(hWnd, &ps);
  // TODO: Add any drawing code here...
  EndPaint(hWnd, &ps);
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hWnd, message, wParam, lParam);
 }
 return 0;
}
.
.
.
« Изменён в : 22.03.2011 в 23:04:50 пользователем: jarni » Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #73 от 22.03.2011 в 23:00:06 »

2jarni: Да нет вроде. До этих я додумался, но им надо какие то параметры передавать и прочая фигня. Там что то типа дефолтной обработки ... Мне нужно просто окно перерисовывать регулярно, т.к. там вывод лога идёт...
ЗЫ Да, я всё Билдер мучаю :)
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #74 от 22.03.2011 в 23:09:44 »

2Artem13: Обновил свой пост. В приведённой оконной функции есть case WM_PAINT где тебе и надо будет рисовать. Если в билдере оно работает иначе, то не знаю.
 
Может опишешь проблему поподробнее. Ты говоришь о длительном цикле. Где обрабатывается этот цикл? Если у тебя оконная программа то в приципе запуск этого цикла происходит как раз в обработке оконного сообщения, например в обработке кнопки. Если это так, то цикл заблокирован и тебе надо запускать по сути новый (временный) который заменит тот который ты заблокировал (поэтому лучше делать свои цикли в отдельных потоках). Ну или може просто вызываей функцию DoPaint() своего окна или что-то подобное раз за итерацию своего цикла.
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #75 от 22.03.2011 в 23:22:13 »

2jarni: Ты приводишь варианты для чистого АПИ. Это я могу реализовать, но не хочется городить. Да, там долгий цикл в обработчике кнопика. Вернее большие траты на ожидание. Их можно оформить циклами и в начале каждого цикла обрабатывать сообщения в очереди. Но вот вроде была простая конструкция в Билдере для этого, но мну заклинило намертво :(
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #76 от 22.03.2011 в 23:28:38 »

2Artem13: Может что-то вроде Application.ProcessMessages() ?
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #77 от 22.03.2011 в 23:30:22 »

2jarni: О! Вот это кажется оно, сенькс, пошёл пробовать.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #78 от 03.09.2011 в 01:11:20 »

Ребята, снова пара вопросов:
1. винда. Как получить инфу о системе. Конкретно интересует наличие и названия СОМ-портов.
2. Есть переменная типа байт (BYTE, он же unsigned char). Нужно запихнутое туда число превратить в знаковое. Простое прямое приведение типов, ессно, не работает.
« Изменён в : 03.09.2011 в 01:11:57 пользователем: Artem13 » Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #79 от 03.09.2011 в 01:24:14 »

2Artem13:  
1. QueryDosDevice
 
2. Что значит превратить в знаковое? Если ты уже запихнул знаковое число в беззнаковый тип, информация о знаке утрачена т.к. байт отводимый под знак занят частью самого числа.
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #80 от 03.09.2011 в 01:30:50 »

2Artem13:  
1. SetupDiEnumDeviceInfo с нужными параметрами. GUID вроде GUID_CLASS_COMPORT. Вобщем гугли в этим направлении, потому что способ CreateFile( "\\\\.\\COM01"...) не совсем хороший.
2. Как так не работает? Если у тебя в байте 0xFF, то приведя его в знаковый вид ты получишь -1.
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #81 от 03.09.2011 в 03:45:52 »

2Korchy: Да нет, не утрачена. Просто интерпретируется по-другому.
2jarni: а, это я ступил, наверное. Байт привёл к шорту. А там жеж длина другая со всеми вытекающими. Попробую сначала в чар перевести, сенькс.
 
2jarni:  03.09.2011 в 01:30:50, jarni писал(a):
CreateFile( "\\\\.\\COM01"...) не совсем хороший.

Я использую CreateFile( "COM1", ...) :) Проблем не замечено вплоть до Висты.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #82 от 03.09.2011 в 05:42:14 »

03.09.2011 в 03:45:52, Artem13 писал(a):
Да нет, не утрачена. Просто интерпретируется по-другому.  

Да, я немного неправильно написал, если записать и сразу считать оттуда же, будет сохранена. Стоит сделать любую операцию - будет утрачена.
Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #83 от 06.10.2011 в 22:19:09 »

Такой ситуёвина - есть прога на С++ и есть Флеш-прога (Айр, вероятнее всего). Необходимо регулярный (2 раза в секнду) обмен небольшим массивом данных. Программист флеш предлагает через текстовый (тхт, xml) файл. Однако я боюсь стандартными Сишными способами работы с файлами могут возникнуть конфликты доступа. Посоветуйте, как лучше всего это дело организовать.
ЗЫ Если есть способ встроить флеш в С-программу, вообще шикарно было бы :)
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #84 от 07.10.2011 в 04:26:53 »

2Artem13:  
А банальные сокеты программист флеша не предлагает? И флеш и с++ поддерживают подключение через сокеты - самый прежде всего напрашивающийся вариант.
Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #85 от 07.10.2011 в 05:05:34 »

2Korchy: нет :(
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #86 от 07.10.2011 в 06:01:08 »

07.10.2011 в 05:05:34, Artem13 писал(a):
нет

"Нет" что? Программист флеша не может это реализовать? Флешка не меняется?
Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #87 от 07.10.2011 в 06:07:58 »

2Korchy: не предлагал. Да и я сокетами не владею - не было надобности.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #88 от 07.10.2011 в 06:19:31 »

2Artem13:  
 
Да с сокетами просто все, особых заморочек нет. Для того, что ты написал это самый простой и логичный путь. Встроить флеш в приложение в принципе наверное можно, но я не уверен, что это даст решение проблемы т.к. встраивать ты будешь не саму флешку а флеш-плеер в котором флешка будет проигрываться, т.е. промежуточную виртуальную машину и проблема передачи данных сквозь нее останется, плюс у флеша куча заморочек с безопасностью доступа, которые тоже надо будет порешать. Может есть что-то, чего я не знаю, но ситуация видится мне так. А вообще, кому нужны данные? Флешке или проге?
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #89 от 07.10.2011 в 06:46:36 »

2Artem13: С такой частотой обмена данными через файл лучше не делать. Доступ к файловой системе довольно медленный, будут постоянные простои. Если данными обмениваться только в одном направлении Флеш->С, то всё-таки можно пробовать, поскольку запрет на совместное использование файла на Вин/Лин работает вполне нормально, а на С можно спокойно делать поток для "опроса" файла. В обратном направлении будут проблемы если флеш не поддерживает потоки. В общем, геморрой тот ещё будет.  
 
Так что учи сокеты, благо со стороны С на это пойдёт отсилы день, и заставляй Флешера делать тоже самое.
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #90 от 07.10.2011 в 07:05:49 »

Флеш естественно потоки не поддерживает. Но и для файл-обмена интервал в 2 минуты вполне достаточный. Вообще варианты есть, можно через базу данных например менять. Все зависит от задачи. Но сокеты наиболее универсальный и простой вариант.
 
upd. перечитал вопрос - 2 раза в секунду а не в минуту! Тогда только сокеты других вариантов не будет.
« Изменён в : 07.10.2011 в 07:08:28 пользователем: Korchy » Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #91 от 07.10.2011 в 16:21:08 »

Нет, там основной поток как раз наоборот, С->Флеш.
Ладно, провентилирую насчет сокетов, но что то мне подсказывает, что врядли :(
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #92 от 07.10.2011 в 19:39:55 »

2Artem13: Если сокеты не удастся продвинуть, тогда можно и через файл.
Способ 1: Создаёшь простой протокол: в файле первым байтом идентификатор направления потока данных. Дальше 4 байта временная метка. Дальше данные. Тот кому нужен доступ для файла открывает его на запись и чтение но без шеринга, абсолютно. Это для того чтобы при конкурентном доступе процесс ждал пока тот другой процесс закончит свою операцию.  
 
Дальше работа для обоих одинкова.  
Раз в пол секунды процессу нужно что-то прочитать, он открывает файл и смотрит на первый байт. Если там его идентификатор значит там данные для него. Дальше он смотрит на метку. Если она отличается от предыдущей, то значит в файле новые данные, можно читать. Если же метка не поменялась, то данные от последнего чтения не менялись. Закрывает файл.  
Если надо записать в файл, то открываем, пишем в первый байт идентификатор для того другого, пишем новую метку, пишем данные.
Вполне возможно что когда откроешь файл для записи, то там будут новые данные для чтения. От логики твоей программы зависит если ты эти новые данные проигнорируешь или сначала их прочитаешь а потом уже будеш писать свои.
 
Способ 2: В файле выделяешь фиксированную часть для одного процесса, и такую же для второго. Первый скажем читает данные с оффсета 0, пишет с оффсета 512, второй наоборот, пишет с оффсета 0, читает с оффсета 512. В таком виде отпадает надобность иметь идентификатор направления. Остаётся только метка. Обработка проще. Открыл, посмотрел нет ли чего новенького на оффсете для чтения, записал свои данные на оффсет для записи.
 
В случае если файл открыт другим процессом, повторять попытку его открыть раз в 50-100 мс. Не знаю правда одного нюанса. Если будет использоватся винчестер то там есть кеш. Если все операции будут проводится в кеше то быстродействие может быть вполне нормальное. ОСь после закрытия файла далеко не всегда сразу переливает его из кеша на сам диск. Если всё-таки после закрытия файл будет всегда сливаться на диск, то лампочка работы с диском у тебя не потухнет, вероятность убить диск будет возрастать в каждым часом проработанном в таком режиме. Также надеюсь это всё не будет проходить на флешке, имею ввиду флеш-диск. За каких-то 10 минут ты убёшь сектор который станет нечитабельным. Из последнего думаю понятно что может таки лучше попробовать сокеты.
Зарегистрирован

Don't worry, be happy.
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #93 от 07.10.2011 в 23:41:31 »

2jarni: Сенькс, если что попробую. Пока вроде наметился прогресс в сокетах. во всяком случае программист сообщила, что знакома с данной технологией.
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #94 от 10.10.2011 в 20:29:16 »

2Korchy: 2jarni: Други, в двух словах о сокетах - возможно ли применения на локальном компе и как?
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #95 от 10.10.2011 в 20:35:21 »

2Artem13: Конечно. Для этого существует так званый loopback ip-адрес: 127.0.0.1.
 
Сервер создаёт сокет, байндит его на адрес и порт, 127.0.0.1:55555. Сервер будет принимать исключительно локальное соединение на одном компе.
 
Клиент коннектиться прямо на адрес и порт: 127.0.0.1:55555.
« Изменён в : 10.10.2011 в 20:36:58 пользователем: jarni » Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #96 от 10.10.2011 в 23:42:48 »

Ярни все верно написал.
Не указал разве что 127.0.0.1 называется localhost и порты лучше выбирать начиная с 255, до 255 почти все отведены под какой-нибудь системный процесс.
Зарегистрирован

ban.gif
jarni
[Гарный хлопец]
Прирожденный Джаец

Мне нечего сказать.


Ё-мэйл

Пол:
Репутация: +306
Re: С++
« Ответ #97 от 10.10.2011 в 23:46:54 »

2Korchy: Ну да, про алиас забыл. А порты вроде лучше выбирать из 49152–65535, поскольку они не могут быть зарегистрированы IANA. Взяв что-то ниже можно нарваться на уже используемый какой-то програмулиной или сервисом порт.
Зарегистрирован

Don't worry, be happy.
Korchy
[Непреодолимая сила]
Прирожденный Джаец

Ах, было б только с кем поговорить ...


WWW Ё-мэйл

Пол:
Репутация: +639
Re: С++
« Ответ #98 от 11.10.2011 в 00:24:25 »

10.10.2011 в 23:46:54, jarni писал(a):
Ну да, про алиас забыл. А порты вроде лучше выбирать из 49152–65535, поскольку они не могут быть зарегистрированы IANA. Взяв что-то ниже можно нарваться на уже используемый какой-то програмулиной или сервисом порт.  

Да это уже без разницы. Идентификацию своих данный все равно по-хорошему нужно делать, никогда нет стопроцентной уверенности что еще кто-нибудь по чистой случайности не возьмет выбранный порт. А так можно хоть 80й интернетовский брать. Просто больше ожидание и отсеивать кучу чужих пакетов придется.
Зарегистрирован

ban.gif
Artem13
[Плавленный стрелок]
Прирожденный Джаец

Ап, и черти у ног моих сели...


WWW Ё-мэйл

Пол:
Репутация: +440
Re: С++
« Ответ #99 от 11.10.2011 в 00:39:15 »

2Korchy: В Билдере есть два компонента - их достаточно будет, или необходимо еще какие-то шаманства проделать?
Зарегистрирован

Artem13.gif
http://www.aap13.narod.ru
И пули, что найдет тебя,
Ты не услышишь,
А остальные мимо пролетят

Страниц: 1 2 3 4 5 6  Послать Тему Послать Тему Печатать Печатать

« Предыдущая Тема | Следующая Тема »

Статистика. Размер данных: 161637 GZip: off
A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.