|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||||||||||||||||||||||||||||||||||||||||||||
При перекомпиляции сервера перекомпилируется клиент, а что, собственно в этом плохого?04.03.2013, 12:54. Показов 4826. Ответов 38
Метки нет (Все метки)
Друзья!
Начинаем цикл вопросов про COM- Объекты. Первый вопрос возник по статье Безверхова, вот здесь статья. Вот там такой пример:
...Итак, компилим сервер:
Я ничё не понимаю. Может кто-то разъяснит мне, что имел ввиду Безверхов, говоря:
0
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 04.03.2013, 12:54 | |
|
Ответы с готовыми решениями:
38
Как отключить клиент от сервера, не закрывая при этом приложения
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 04.03.2013, 17:51 | |
|
Учитывая, что myclient.cpp содержит включение myobj.h, то очевидно, что при изменении myobj.h нужно пересобрать myclient.cpp.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 04.03.2013, 18:35 [ТС] | ||
|
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||||||
| 04.03.2013, 18:40 | ||||||||||||
0
|
||||||||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 04.03.2013, 19:24 [ТС] | |
|
Ну так вы попробуйте и скажите, что будет. Я вот например меняю код сервера и соответственно, хидер и не трогаю клиент вообще- только линкую (потому что без этого никак; так опять же прилинковываю ПРЕЖНИЙ клиент); и клиент как работал так и работает.
Другое дело, что, допустим мы удаляем из сервера какую-то функцию, а из клиента вызов её не удаляем. Но этот случай мы не рассматриваем, ибо не может клиент быть абсолютно автономен он сервера, он же должен знать, что в сервере присутствует функция такая-то. И если она и всегда будет присутствовать в сервере, то дальнейшие изменения его не повлияют на работу клиента, даже если реализация самой функции изменится. Хоть ты заизменяйся, хоть ты задобавляйся полей и других функци. Главное, чтобы прототип вызываемой в клиенте функции остался прежним.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||||||||||||||||||||||||||||||||||
| 04.03.2013, 20:28 | |||||||||||||||||||||||||||||||||||||||
|
Вот вам код:
1
|
|||||||||||||||||||||||||||||||||||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 04.03.2013, 21:39 [ТС] | ||||||
|
Ну допустим. Но я вот сделал так:
Ну в общем не хотелось бы щас в причины этого всего углубляться, а хотелось бы определить для себя или прочесть где-то я не знаю- когда в случае изменения хидера надо перекомпилировать клиент, а когда необязательно. Безверхов вот считает что всегда надо. А вы как думаете?
0
|
||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 04.03.2013, 22:04 | |
|
мы думаем что если вы не хотите проблем нужно пересобрать всегда. в чем сложность?
2
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 04.03.2013, 22:46 [ТС] | |
|
сложность в том, что вы думаете, а я бы хотел чтоб вы знали.
0
|
|
| 04.03.2013, 23:56 | |
|
Не по теме: святая корова, а что будет когда ТС дойдет до IDL:D
0
|
|
| 05.03.2013, 00:47 [ТС] | |
|
Не по теме: Это типа я лох?
0
|
|
| 05.03.2013, 01:07 | |
|
0
|
|
| 05.03.2013, 02:13 [ТС] | |
|
Не по теме: то есть мне не спрашивать больше или чё?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 05.03.2013, 08:12 | |
|
kravam, заранее не известно какие изменения были внесены в заголовочный файл: может там пробелов понаставили, тогда пересборка как бы и не нужна. А может и полностью файл перелопатили. Но чтобы это узнать нужно проанализировать сделанные изменения. И, учитывая, что скорее всего изменения потребуют пересборки, лучше сделать это сразу, а не надеяться что и так прокатит. Особенно когда программа начнет вести себя странным образом.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 05.03.2013, 10:39 [ТС] | ||
|
В "заголовочный"здесь не подходит. Я пишу клиент. И я определённо должен видеть заголовочный файл. И все изменения в нём. В противном случае (если у меня нет перед глазами *.h файла) я должен перекомпилировать клиент ПЕРЕД КАЖДЫМ ЗАПУСКОМ- действительно, может *.h изменился, а я и не знаю! Но ради избежания такой ситуации мы и предполагаем, что именно все изменения в *.h нам видны заранее (перед каждым запуском), а вот изменения в*.cpp файле заранее не видны. Хотя мы здесь разобрались, что измененения в *.h не всегда предполагают изменения в *.cpp файле, но тем не менее, перекомпилировать всё равно надо. Вопрос лишь в том, на изменения в каком файле ориентироваться- на *.h или на*.cpp; и если на *.h, тогда (повторюсь) все изменения в нём именно что и должны быть видны заранее.
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||
| 05.03.2013, 11:49 | |||
0
|
|||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||
| 05.03.2013, 12:08 [ТС] | |||
|
Да, но только в вопросе имелось ввиду- что, во первых, как вы сами заметили
Вы же отвечая, предполагаете То есть я рассматриваю ситуацию- файл *.h изменился и мы об этом знаем. (и отсюда вопрос- всегда ли в этом случае надо пересобирать клиент) Вы рассматриваете ситуацию- то ли он изменился, то ли нет. ++++++++++++++++++++++++++++++++++++++++ Давайте всё-таки мою ситуацию рассмотрим. А с вашей-то всё понятно- коль скоро мы не знаем заранее, изменился *.h файл или нет, надо экзешник компилить на всякий случай каждый раз перед запуском...
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 05.03.2013, 13:29 | ||
|
1. Просто пересобрать всё по полной при изменении хедера. 2. Проанализировать изменения. И по результатам анализа принять решение о необходимости полной пересборки. А так как анализ изменений в подавляющем большинстве случаем займет больше времени, чем безусловная пересборка, то и заниматься таким анализом бессмысленно. Имхо.
1
|
||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
||
| 05.03.2013, 13:51 | ||
|
если вы меняли все что угодно в h файле реализации объекта - клиента перекомпилировать не нужно - вы наследовали от известного интерфейса и позиции методов интерфейса никогда не поменяются - клиент вообще не должен и не может видеть ничего кроме интерфейса. если вы меняли хоть что нибудь в h файле интерфейса - клиента нужно перекомпилировать всегда.
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 05.03.2013, 14:02 [ТС] | ||
|
По вашей градации к чему относится этот пример?
https://www.cyberforum.ru/com-... ost4211119 Это по-моему второй случай:
0
|
||
| 05.03.2013, 14:02 | |
|
Помогаю со студенческими работами здесь
20
Проверка на стороне сервера, что клиент обработал отправленные данные Зависает клиент при приёме от сервера
Чем пользоваться при создании клиент-сервера? Тормоза При Перекомпиляции Бд Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|