4261
|
Программирование / С/C++ / Re: C headers (mixed C/C++)
|
: Январь 24, 2013, 20:25
|
А не уйдет ли вся силенка в запоминание стандартных решений? Это ох как часто бывает.
Еще чаще бывает полное переписывание чужих велосипедов на стандартные решения, для облегчения дальнейшего сопровождения системы. Однако вернемся к теме. От того что оно стандартное - легче почему-то не стало Минусы точно такие же как и в варианте ckУ любого костыля будут минусы. Если делать основательно, то должно быть три слоя: пользовательский, враппер, С-библиотека, с обязательным условием - крайние слои ничего не знают друг про друга.
|
|
|
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; };
|
|
|
4270
|
Qt / Общие вопросы / Re: RegExp или работа со строкой.
|
: Январь 21, 2013, 14:29
|
Я просто обоснованно думаю, что мой код, использующий всякие indexOf, по сравнению с другими решениями, очень медлителен и затратен Точно. Проще один раз описать все правила и забыть про его разбор, чем после каждого чиха, что-то дописывать, отлаживать и проверять.
|
|
|
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. В документации все расписано.
|
|
|
|
|