Для обучения может быть сгодится и свой велосипед, но затем необходимо будет перейти на готовое решение, к примеру WTL, и чем раньше — тем лучше.
Также не стоит привыкать к дебагу при помощи консоли, в продакшн коде такое решение весьма спорно.
Кстати, окно можно показать и из консольного приложения, тогда не нужно будет дополнительно ее (консоль) показывать. Но опять таки, только в целях обучения.
В состав Visual Studio входит программа Spy++, иногда сильно помогает при разработке окошек.
Слепая печать, это когда твои мысли напрямую трансформируются в текст, руки сами набирают, об этом не нужно даже задумываться.
«Не нужно целится» — это не совсем то, как мне кажется.
Сдается мне что мьютекс здесь нужно использовать не только при добавлении/удалении threadNode, но и при поиске threadNode в момент отправки.
Могу ошибаться из-за недопонимания C#, но разве безопасно в одном потоке вызывать метод объекта byTID.TryGetValue(), а в другом подменять ссылку на объект byTID = newbyTID?
На С++ данный момент описан мной в статье (см. последний пример кода)
Я владею слепым методом набора на компьютерной клавиатуре, и меня всегда сильно раздражала необходимость пялиться в клавиши и искать очередную букву на мобилках (даже с qwerty клавиатурой).
Неужто можно будет наконец оторвать взгляд от клавиш телефона и почувствовать такую-же свободу при наборе на телефоне/планшете, как и на компьютере при наборе слепым методом?
Попробуй демку покликать.
Там требуется вводить следующие слова:
«snapkeys is easy to learn» и «today you learned to blind type»
При наборе нужно вспомнить как выглядит требуемая буква и определить к какому квадрату она относится.
Принцип простой: есть кружки (ODQRPB) — розовый, есть одна точка прикосновения (JVYTIF) — желтый, есть две точки (NMAWXK) — зеленый, остальные (SECGLUZ) — синий.
Традиционная галка несет намного большую информативность, чем переключатель такого рода (как на картинке выше).
И мне кажется что нужно избегать, по возможности, такого «дизайнерского» хода.
Согласен, панель быстрого запуска намного удобней «припиняных» программ, которые занимают ценное место таскбара даже если не запущены.
У меня только несколько программ удостоились быть «припинеными» — Crome + Explorer, т.к. пользуюсь там ими практически каждый раз.
При этом панель быстрого запуска у меня содержит более 30 значков.
Ярлыками на рабочем столе не пользуюсь совсем (не вижу смысла сворачивать все окна чтобы открыть новое)
Я на работе постоянно пользуюсь несколькими компьютерами (не считая домашних).
Также пользуюсь множеством виртуалок, притом часто сделанных не мной.
А если учесть, что к тестерам приходится иногда за машины садится и что-то там смотреть, то вообще очень много компьютеров получается.
Носить везде с собой такой батник будет просто нецелосообразно.
Мне легче нажать комбинацию клавиш Win + Pause и сделать два клика мышкой.
Но, как говорится, каждый выбирает свой путь.
PS: Вопросс считаю полностью исчерпаным.
Ваш вариант может быть и применим в инструкциях, но он, ИМХО, плох для повседневного использования, я сомневаюсь что кто-то реально будет такое запоминать и набирать каждый раз: «rundll32.exe sysdm.cpl, EditEnvironmentVariables»
А зачем отвлекаться от сути?
Разобраться с командной строкой и переменными окружения всегда можно успеть.
Первые шаги в С++ и так не легки, так зачем же усложнять себе жизнь?
Интерфейсы общего и частного в COM не обязательно должны быть связанны наследованием, они обязаны наследоваться только от IUnknown и могут быть не связанными друг с другом.
При этом, имея указатель на один из интерфейсов, можно запросить второй интерфейс при помощи вызова QueryInterface.
Более того — наследование интерфейсов COM друг от друга во многих случаях даже мешает.
К примеру может возникнуть проблема ромбовидного наследования при реализации этих интерфейсов.
Это я к тому, что при проектировании своей архитектуры не нужно принимать за правило то, что «если есть связь общее/целое то нам необходимо применять наследование».
Во многих книжках по C++ советуют избегать наследования если это возможно, особенно наследования реализации.
Изначальный вопрос построен неверно, и по этому я не могу ответить на такой вопрос.
Если бы было написано «Чем может быть представлено отношение общее/частное», «Чем представляется отношение общее/частное» или «Как можно представить отношение общее/частное» то вопросов бы не возникало.
Кстати, отношение общее/частное не обязательно выражать наследованием, см. тот-же COM к примеру.
Также не стоит привыкать к дебагу при помощи консоли, в продакшн коде такое решение весьма спорно.
Кстати, окно можно показать и из консольного приложения, тогда не нужно будет дополнительно ее (консоль) показывать. Но опять таки, только в целях обучения.
В состав Visual Studio входит программа Spy++, иногда сильно помогает при разработке окошек.
«Не нужно целится» — это не совсем то, как мне кажется.
Могу ошибаться из-за недопонимания C#, но разве безопасно в одном потоке вызывать метод объекта byTID.TryGetValue(), а в другом подменять ссылку на объект byTID = newbyTID?
На С++ данный момент описан мной в статье (см. последний пример кода)
Не тупо запомнить, а по внешнему виду буквы определить, — что намного легче
Неужто можно будет наконец оторвать взгляд от клавиш телефона и почувствовать такую-же свободу при наборе на телефоне/планшете, как и на компьютере при наборе слепым методом?
Если так, то я побежал покупать планшет :)
Там требуется вводить следующие слова:
«snapkeys is easy to learn» и «today you learned to blind type»
При наборе нужно вспомнить как выглядит требуемая буква и определить к какому квадрату она относится.
Принцип простой: есть кружки (ODQRPB) — розовый, есть одна точка прикосновения (JVYTIF) — желтый, есть две точки (NMAWXK) — зеленый, остальные (SECGLUZ) — синий.
И мне кажется что нужно избегать, по возможности, такого «дизайнерского» хода.
У меня только несколько программ удостоились быть «припинеными» — Crome + Explorer, т.к. пользуюсь там ими практически каждый раз.
При этом панель быстрого запуска у меня содержит более 30 значков.
Ярлыками на рабочем столе не пользуюсь совсем (не вижу смысла сворачивать все окна чтобы открыть новое)
Также пользуюсь множеством виртуалок, притом часто сделанных не мной.
А если учесть, что к тестерам приходится иногда за машины садится и что-то там смотреть, то вообще очень много компьютеров получается.
Носить везде с собой такой батник будет просто нецелосообразно.
Мне легче нажать комбинацию клавиш Win + Pause и сделать два клика мышкой.
Но, как говорится, каждый выбирает свой путь.
PS: Вопросс считаю полностью исчерпаным.
Разобраться с командной строкой и переменными окружения всегда можно успеть.
Первые шаги в С++ и так не легки, так зачем же усложнять себе жизнь?
Используйте Visual Studio и будет Вам счастье, тем более что Express edition можно скачать прямо из Microsoft и совершенно бесплатно!
PS: В последнее время что-то слишком много пишут для школьников, куда подевались высокотехнологичные темы?
При этом, имея указатель на один из интерфейсов, можно запросить второй интерфейс при помощи вызова QueryInterface.
Более того — наследование интерфейсов COM друг от друга во многих случаях даже мешает.
К примеру может возникнуть проблема ромбовидного наследования при реализации этих интерфейсов.
Это я к тому, что при проектировании своей архитектуры не нужно принимать за правило то, что «если есть связь общее/целое то нам необходимо применять наследование».
Во многих книжках по C++ советуют избегать наследования если это возможно, особенно наследования реализации.
Если бы было написано «Чем может быть представлено отношение общее/частное», «Чем представляется отношение общее/частное» или «Как можно представить отношение общее/частное» то вопросов бы не возникало.
Кстати, отношение общее/частное не обязательно выражать наследованием, см. тот-же COM к примеру.
Как вообще понять этот вопрос?
Кем представлено и в каком таком коде?