Ответы пользователя по тегу C++
  • Как преобразовать (cast) void* в byte[][] в C++?

    @lil_Toady
    Простой ответ: Никак.

    void* - это совсем не то же самое что object в c# или java, это просто ссылка на какую-то область памяти, в данном случае на первый элемент массива. Какого размера объект по этой ссылке и что из себя представляет эта выделенная память нужно знать самому. Вы вполне можете сделать каст в массив int'ов или в одномерный массив, а не двухмерный - и это все будет валидным действием. Можете даже сказать что там объект какого-то класса или структуры. Это все лишь представление того как работать с указанной областью памяти.

    C++ слишком низкоуровневый для подобного :)
    Ответ написан
    Комментировать
  • Как внутри программы определить куда вывод идет в терминал или в файл?

    @lil_Toady
    Автор заметил что вывод разный, то что он сам направил вывод в файл он в курсе :)

    Узнать пишем ли мы в терминал можно так:
    isatty(fileno(stdout));

    istty находится в io.h, а fileno в stdio.h

    И ls, действительно смотрит если вывод в терминал - то в одну строку, иначе - в несколько:
    https://github.com/coreutils/coreutils/blob/master...
    Ответ написан
    Комментировать
  • Как запретить изменение значения непостоянной переменной?

    @lil_Toady
    Возможно вам подойдет какой-то singletonкласс в который будут загружены переменные из файла, а далее сделать геттеры у которых возвращаемое значение помечено как const, чтобы нельзя было из изменить. Да и сами методы тоже, чтобы обозначить что они не меняют состояние объекта.
    Ответ написан
    1 комментарий
  • Как работает WinSock::accept?

    @lil_Toady
    Если кртако:
    TCP - сессионный протокол, а соответственно запросы на открытие подключения надо принять, что и делает accept. Логически, каждый подключенный клиент - это отдельный сокет, который через accept мы и получим.
    Ответ написан
    Комментировать
  • Как установить параметр VCInstallDir для VS 2010?

    @lil_Toady
    Наверное уже поздно, но вдруг кому понадобится:

    VCInstallDir, как и многие другие переменные среды для студии задаются и проверяются вызовом %vs dir%\Common7\Tools\vsvars32.bat,
    который в свою очередь вызывает VCVarsQueryRegistry.bat.

    Если глянуть последний батник, для VCInstallDir, ключ "10.0" ищется в следующих путях:
    - HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7
    - HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7
    - HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7
    - HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7
    Ответ написан
    Комментировать