Russian Qt Forum
Май 02, 2024, 19:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 283 284 [285] 286 287 ... 290
4261  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 20:25
А не уйдет ли вся силенка в запоминание стандартных решений? Это ох как часто бывает.
Еще чаще бывает полное переписывание чужих велосипедов на стандартные решения, для облегчения дальнейшего сопровождения системы.

Однако вернемся к теме. От того что оно стандартное - легче почему-то не стало Улыбающийся  Минусы точно такие же как и в варианте ck
У любого костыля будут минусы.
Если делать основательно, то должно быть три слоя: пользовательский, враппер, С-библиотека, с обязательным условием - крайние слои ничего не знают друг про друга.
4262  Qt / Model-View (MV) / Re: QSortFilterProxyModel + QStandardItemModel + QTreeView + crush when remove rows : Январь 24, 2013, 20:14
Я правильно понимаю, что ты пытаешься удалить текущий элемент, на который указывает итератор?
4263  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 17:45
А так c_struct->color не модифицируется (не говоря уже о том что копирование из одной структуры в др не украшает)

Вот по этому:
А лучше, что бы данных в C-структурах больше не было.

В пользовательском коде уже не должно быть C-структур, весь пользовательский код должен работать с врапперами.
4264  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 17:08
Код
C++ (Qt)
class RGB_Real
{
public:
   RGB_Real( const RGB_Float & );
};
 
//  void RaiseContract(RGB_Real &);  // здесь плюсовый класс для расчетоы
..
RaiseContract(c_struct->color);   // а данные в структуре С
..
 

А лучше, что бы данных в C-структурах больше не было.
4265  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 17:06
Выложить его не могу, да и что там собственно видеть? typedef struct - вот и все, просто много
Да выкладывать не обязательно. Это нужно что бы определиться какие классы нужны и как они будут взаимодействовать.

В смысле вызовов ф-ций SDK - этот подход прекрасный. Но вот со структурами данных..
А что со структурами данных? Часть из них может вообще исчезнуть для конечного пользователя, другая адаптироваться для объектного API.
4266  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 15:41
Вот об этом я и хотел поговорить  Улыбающийся Латки ставить и сам умею - а вот как по-умному?
А что бы это обсудить, нужно видеть С API.
Как правило, прямая переделка всех структур в классы, удобства не прибавляет. Нужно абстрагироваться от Сишного кода и попытаться придумать удобный Плюсовый API, и под него адаптировать классы, в которых и прятать Сишные функции.
4267  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 15:22
но возникают множественные приведения (обычно по ссылке) - ведь во всех структурах SDK вмонтированы RGB_Float (а не RGB_Real)

Можно определить оператор приведения типа. Я пытался в одном примере все объединить, но так не понятно:
Код
C++ (Qt)
class RGB_Real
{
public:
 
   operator RGB_Float();
};
 

А по хорошему, нужно все перевести на классы (сделать полную прослойку) и использовать в пользовательском коде только их.
4268  Программирование / С/C++ / Re: C headers (mixed C/C++) : Январь 24, 2013, 15:12
Код
C++ (Qt)
class RGB_Real : public RGB_Float
{
public:
   RGB_Real( void ) { r = g = b = 0.0f; }
 
   float Min( void ) const;
   float Max( void ) const;
   float Gray( void ) const;
};
 
4269  Qt / Многопоточное программирование, процессы / Re: архитектура producer & consumer threads : Январь 24, 2013, 15:05
Я пытался складывать данные в циркулярный буфер на семафорах (см. пример Qt) и потом в потоке обработке считывать, но это решение грузит процессор , относительно конечно, но для моей задачи процент загрузки не приемлим.
Покажи, как ты делал и попробуем исправить.
4270  Qt / Общие вопросы / Re: RegExp или работа со строкой. : Январь 21, 2013, 14:29
Я просто обоснованно думаю, что мой код, использующий всякие indexOf,  по сравнению с другими решениями, очень медлителен и затратен Улыбающийся
Точно. Проще один раз описать все правила и забыть про его разбор, чем после каждого чиха, что-то дописывать, отлаживать и проверять.
4271  Qt / Общие вопросы / Re: RegExp или работа со строкой. : Январь 21, 2013, 13:29
PS это ещё простейшая конструкция Веселый Есть и с табами/двоеточиями/массивами Улыбающийся
Так может стоит сразу взять boost spirit или lex?
4272  Qt / Работа с сетью / Re: загрузка CPU при приеме пакетов : Январь 21, 2013, 12:30
дайте пояснение пожалуйста, что делает эта строка? мне не понятно каков механизм уведомления о том, что пришли новые данные на сетевуху? или она тупо периодически опрашивается?
Это костыль.

Воспользуйся поиском по форуму, недавно было несколько тем про pcap.
Там были ссылки на враппер для Qt.
4273  Qt / Работа с сетью / Re: загрузка CPU при приеме пакетов : Январь 21, 2013, 07:34
всем привет!
По ethernet сети приходят пакеты (raw), поток примерно 400 кбит/с. Требуется осуществить их прием и обработку.
Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов.

p.s. libpcap не подходит, т.к. сильно грузит процессор
Что то ты не так делаешь. Уже нет тех процессоров, которые таким потоком можно сильно загрузить.
4274  Qt / Вопросы новичков / Re: Сборка пакета qwt 6.1.0 : Январь 20, 2013, 18:52
Пробую запускать демки на целевой машине, как и ожидалось, программа ищет либы. Те самые libqwt, пробую просто копировать их с ПК на целевую,программа не запускается, пишет типо ... symbol ... .как то так.Куда копать?(Демки собраны для целевой машине)
man ld.so

В linux загрузчик ищет библиотеки в специальных директориях, а не рядом с исполняемым файлом.
Либо клади либы на целевой машине куда следует, либо использую LD_LIBRARY_PATH.
В документации все расписано.
4275  Qt / Вопросы новичков / Re: Соединение виджетов в пользовательском классе : Январь 20, 2013, 16:45
Код
C++ (Qt)
// for (int i = 0; i <= Example.getSize(); i++)   // Выходишь за границы массива
for (int i = 0; i < Example.getSize(); i++)
{
layout -> addWidget (Example[i]);
}
 
Страниц: 1 ... 283 284 [285] 286 287 ... 290

Страница сгенерирована за 0.152 секунд. Запросов: 23.