Ответы пользователя по тегу C++
  • Реализация динамической типизации в c++?

    AxisPod
    @AxisPod
    Посмотрите в сторону boost::any и boost::variant, могу дать реализацию очень близкую к boost::any, но без boost.
    Ответ написан
    3 комментария
  • Использование Direct2D В FullScreen?

    AxisPod
    @AxisPod
    Формат пикселей, это как видяха кодирует символы, для чего какие биты используются, можно задать множество разных форматов, например 16битный, 32битный, 48битный, при этом еще по несколько вариаций, все зависит от нужд.

    GetClientRect возвращает прямоугольник клиентской области окна, это где можно рисовать. Координаты при этом оконные, т.е. левый верхний угол должен быть 0,0, правый нижний это размер, если нужны экранные координаты, то можно сконвертировать методом ClientToScreen, есть и обратный метод, обычно нужны для работы с мышью.
    Ответ написан
    Комментировать
  • Использование Direct2D В FullScreen?

    AxisPod
    @AxisPod
    Что-то мне подсказывает, что проблема в формате пикселей. Посмотрите, что вернет функция D2D1::PixelFormat() в полноэкранном и оконном режимах.
    Ответ написан
  • Как определить, что запущена портативная версия программы?

    AxisPod
    @AxisPod
    Именованный мутекс? Правда не в пространстве Global, так что между сессиями пользователей не прокинуть. Если я правильно понял, что вам винда нужна.
    Ответ написан
    Комментировать
  • C++ Как открыть файл во внешнем приложении и гарантированно получить ID процесса?

    AxisPod
    @AxisPod
    В смысле надо взять notepad и открыть им файл, затем отследить закрытие notepad?

    Такой механизм не прокатит к примеру с notepad++, если его процесс уже запущен, созданный процесс отдаст данные в уже запущенный и благополучно завершится.

    ID процесса можно получить используя CreateProcess, но большой подводный камень я описал выше. Более или менее вменяемый вариант озвучил Ramires, но опять же он наткнется на проблему с notepad++, вроде как можно было бы это отследить по имени процесса, но не все приложения так работают.
    Ответ написан
    9 комментариев
  • Как захватить курсор аналогично vmware или remote desktop? Windows c\c++\c#

    AxisPod
    @AxisPod
    Ну во-первых внутри окна виртуальной машины (guest), курсор свой, когда курсор захватывается виртуалкой, то запоминается его позиция и он скрывается, в виртуалку же прокидываются координаты курсора, но с учетом положения окна, если реальный вышел за границу, то координата в виртуалке будет внутренняя и регулируется это самой виртуалкой (так как эмулируется хардварная мышь).

    Если нельзя выпускать курсор, то есть методы, которые ограничивают перемещения мыши, вспомню, напишу.
    Ответ написан
    2 комментария
  • Как значение переменной вставить в путь(MkDir)?

    AxisPod
    @AxisPod
    Лень почитать книги? Или уже в вузах надо сдавать лабораторные работы, а учиться лениво?
    Ответ написан
    2 комментария
  • Что печатает этот код?

    AxisPod
    @AxisPod
    Сам на собственном опыте помню, что при использовании тернарного оператора, условие и действия надо заключать в скобки, т.к. приоритет тернарного оператора ниже чем оператора ротации.
    Ответ написан
    Комментировать
  • Почему возникает ошибка при декодировании base64 из c++ в python?

    AxisPod
    @AxisPod
    А не теряются ли символы = в конце закодированной строки? Да и приведите примеры.
    Ответ написан
    Комментировать
  • Реально ли найти работу C++ разработчику?

    AxisPod
    @AxisPod
    Ну с gcc 4.5 и выше туго, народ не активно переходит на свежие серверные решения, мы вот на 4.2.1 сидим, а из моих знакомых по стране обычно и того ниже.

    А вообще надо пробовать искать, никто же не побьет, если вы попросите поговорить с техническим специалистом и его расспросите.
    Ответ написан
    Комментировать
  • RTTI vs Шаблонная магия?

    AxisPod
    @AxisPod
    А вообще все же интересует, зачем своя реализация простого RTTI, которое и так уже есть.
    Ответ написан
    Комментировать
  • RTTI vs Шаблонная магия?

    AxisPod
    @AxisPod
    Если вы хотите загружать динамически, то шаблонная магия штука неподходящая. При этом понадобится объединение пространств имен, что в итоге потребует в динамически подключаемых библиотеках давать уникальные имена среди всех модулей.

    Я у себя не стал отказываться от наследования, ибо шаблонная магия даже если после кучи извращений и чего-нить даст, то здесь потеря времени разработки, высокая сложность кода.

    Не знаю что конкретно вы хотите. Так что в общем попытаюсь рассказать свой подход. Реализовал элементарный механизм. Есть базовый интерфейс, пустой. От него наследуются все остальные. Динамическая библиотека реализует 4 обязательных метода CreateInstance, DestroyInstance — для создание и удаления объектов и CreateEnumerator, DestroyEnumerator — для создания перечисления доступных объектов внутри библиотеки. Сделал простенький менеджер библиотек, фабрику и объект по типу shared_ptr, только с завязкой на библиотеку. В итоге используется простой код

    Instance<IInterface> obj = mgr->CreateInstance<IInterface>("identificator");

    CreateInstance использует dynamic_cast для приведения к нужному, в случае ошибки кидает исключение.
    Ответ написан
    Комментировать
  • Лучшая методика для реализации HTTP(S) прокси сервера?

    AxisPod
    @AxisPod
    Я бы посоветовал поискать готовый open source проект, взять и допилить функционал. Особенно учитывая отсутствие серьезного опыта в этой сфере.

    Если же сильно хочется, я бы посоветовал использовать библиотеку asio, которая существует как в пакете boost, так и отдельно. Лучше конечно вместе с буст, прям там есть неплохие примеры реализации асинхронных серверов, которые можно взять за основу.
    Ответ написан
    1 комментарий
  • Реализация std::vector?

    AxisPod
    @AxisPod
    Я бы посоветовал почитать Джефа Элджера C++ for Real Programmers, раскрывает нюансы довольно простым языком. Особо сложного ничего и нет.
    Ответ написан
    Комментировать
  • Ужасные тормоза в время компиляции в Visual Studio?

    AxisPod
    @AxisPod
    Не знаю как с VS 2010, а 11 beta вообще комп кладет на лопатки, я так понял какой-то процесс переходит на приоритет real-time и грузит проц на 100%, комп вешается на мертво, ориентировочно, что это делает Intellisence, ибо происходит временами перед появлением подсказки. Разбираться особо не стал, а удалил и вернулся на VS2010. А VS2010 вроде работает отлично.
    Ответ написан
  • Ошибка компиляции C++?

    AxisPod
    @AxisPod
    www.cplusplus.com/reference/algorithm/sort/
    Можно использовать как статическую функцию, так и функтор, если хочется использовать метод объекта, то тут уже сложнее, но возможно, к примеру использовать boost::bind.
    Ответ написан
    Комментировать