• Почему MinGW не видит winapi функцию?

    @res2001
    Марат Нагаев, Ниже этой строки ведь то же есть код?
    Возможно код выше с ошибкой + код ниже, выдают какую-то синтаксически правильную последовательность.
    Вставив по середине эту строку - вы получаете ошибку.

    Предоставьте код выше этой строки.
    Теперь уже было бы интересно взглянуть и на код ниже. Ради спортивного интереса.
  • Почему MinGW не видит winapi функцию?

    @res2001
    Марат Нагаев, Предоставьте код выше этой строки.
  • Является ли внешний IP адрес, и адрес сети одним и тем же? Если нет, то в чем разница?

    @res2001
    iddqda, Про конъюнкцию я в курсе :)
    Разница в "логической" и "побитовой".
    Логические операции оперируют своими операндами как единым целым, а побитовые - каждым битом операндов в отдельности. Таким образом побитовые операции выполняют логическую операцию с каждым битом своих операндов.
    Логические операции определены на булевом множестве (true/false), на множестве целых чисел не определены (IP адрес - это целое число). Результат логической операции true или false. Битовые операции могут работать с целыми числами за счет разделения чисел на биты.
    Не зря же в языках программирования логическое И и побитовое И - это две разных операции.
  • Является ли внешний IP адрес, и адрес сети одним и тем же? Если нет, то в чем разница?

    @res2001
    Только не логическим перемножением вычисляем адрес сети, а побитовой операцией "И" между маской и адресом.
  • Как сделать удаленный монитор?

    @res2001
    saprykinoff,
    Если я правильно понимаю технологию удаленного рабочего стола

    Если будет кому нажать кнопку питания на компе, то в большинстве случаев этого будет достаточно. Комп загрузится и вы снова сможете подключаться удаленно к нему.
    Есть шанс, что при пропадании электричества может испортится файловая система. Это лечится подключением компа к сети через ИБП. Можно настроить комп так, что бы при низком заряде батареи в ИБП комп автоматически корректно выключался, а после появления электричества ИБП его сам включал.
    В любом случае, когда комп должен работать 24/7, есть смысл его подключать через ИБП. Даже и без 24/7 то же есть смысл. В большинстве средних/крупных компаний все офисные компы подключены через ИБП, даже у секретарши :)

    Другой вариант - IP-KVM переключатель, но это дорогая игрушка и когда есть возможность использовать удаленный рабочий стол - то лучше использовать его и в плане удобства работы и во всем остальном. IP-KVM обычно используется в крупных организациях для удаленного подключения к консоли нескольких серверов, например, для того что бы поставить на сервер ОС или зайти в БИОС и т.п. администраторские штуки, для которых обычно требуется присутствие на месте.

    Удаленный рабочий стол работает достаточно быстро, трафика потребляет минимум. Могут быть определенные тормоза с передачей видео и в играх, там где генерируется большой поток видео данных, но он для этого не особо предназначен. Для типичного офисного применения - через удаленный рабочий стол вполне комфортно работать.
  • Почему при вызове деструктора не меняется переменная?

    @res2001
    Евгений Шатунов, Согласен. Но для встроенных типов (а в примере в классе используются только они) это то же самое, что и побайтовое копирование.
  • Как сделать удаленный монитор?

    @res2001
    Вы уверены, что вам нужно именно изображение с монитора.
    Может быть достаточно обычного удаленного доступа (удаленного рабочего стола)?
  • Почему при вызове деструктора не меняется переменная?

    @res2001
    Немного разжую:
    aobj1 = new a; // создается объект в динамической памяти, вызывается конструктор по умолчанию
    
    /* 1. создается временный объект и вызывается его конструктор с параметром (a(2)), 
       2. вызывается операция присваивания копированием по умолчанию для объекта *aobj1 и в этот объект побайтно копируется содержимое временного объекта. 
       3. Для временного объекта вызывается деструктор, так что память выделенная для bObj будет освобождена, что делает объект *aobj1 не корректным (это проявится при любом обращении к aobj1->bObj) */
    aobj1[0] = a(2); 
    
    delete aobj1; // вызывается деструктор *aobj1
  • Как отрисовать курсор в cosmos os?

    @res2001
    Foxik1,
    Как это сделать?

    Вы же пишете свою ОС. Вот и придумайте как это сделать и реализуйте механизм драйверов в ядре, а потом уже и драйвер напишете. В каждой ОС - это делается по своему.
    Я в c# 2 недели

    Что на шарпе уже можно ядро ОС написать? До чего дошел прогресс :)
  • Почему Git-команда ведёт себя так?

    @res2001
    Добавлю.
    Многие линуксовые консольные утилиты ведут себя подобным образом, так что привыкайте. Кроме q там есть и другие управляющие клавиши.
    Для справки нажмите там h.
  • Где в памяти располагаются переменные и массивы?

    @res2001
    Герман,
    Ведь область стека при загрузке программы в память обнулена.

    Возможно первоначально стек и обнулен, я тут не в курсе, но на это рассчитывать не стоит, т.к. стек постоянно меняется и ты не можешь гарантировать, что вот эта конкретная переменная попадет в "обнуленную" область стека, которая не была еще использована. Когда из стека "выталкиваются" (pop) данные, то память в стеке никак не изменяется, просто уменьшается (увеличивается) указатель стека. Поэтому стек всегда содержит огрызки данных предыдущих вызовов и размещенных там переменных.
    И даже в main нет такой гарантии, т.к. до main выполняется куча кода стандартной библиотеки. На самом деле точкой входа в программу является вовсе не мейн. Если я правильно помню, то точкой входа в программу является _start, которая спрятана внутри стандартной библиотеки.

    Массив не может быть частично инициализированным. Он либо не инициализирован (но память выделена), либо инициализирован. Все элементы, которые вы в явном виде не инициализируете, будут заполнены нулями компилятором.

    Не инициализированные глобальные и статические данные лежат в сегменте bss.
    Инициализированные - в data.
    Локальные переменные функций лежат на стеке, не зависимо от того инициализированы он или нет. Код инициализации встраивается в код функции компилятором.
    Динамические данные лежат в куче.
  • Почему вместо копирования через bat файл у меня открывается копируемый файл?

    @res2001
    Egor Irvin, cmd /c - это запуск командной строки винды cmd.exe с ключем /c.
    Про ключи можно почитать, запустив cmd /?

    Дальше идет команда, которую выполняет cmd.
    Все батники выполняются в cmd.exe, даже если вы не запускаете явно ее руками, она все равно запускается неявно и внутри выполняет ваш батник. Сам по себе батник не способен выполнятся - это всего лишь текстовый файл. cmd.exe читает команды в батнике и исполняет их.
  • Почему вместо копирования через bat файл у меня открывается копируемый файл?

    @res2001
    Видимо, в startup надо положить ярлык на запуск cmd.exe /c <путь к батнику>
  • Почему забивается кеш DNS?

    @res2001
    varfi, Какие-то еще подозрительные вещи на компе происходят? Возможно вы подхватили зловреда.
    Проверьте загрузку процессора, сети, диска когда интернет в очередной раз отвалится.

    Про nslookup:
    nslookup google.ru
    Можно подставлять любой домен. Утилита должна вывести IP адрес заданного домена. Для проверки доступности затем можно пропинговать полученный IP адрес. Правда они не все отвечают на пинги, но гугл с яндексом отвечают :)
  • Почему забивается кеш DNS?

    @res2001
    varfi, Настройте ДНСы яндекса или гугла, адреса легко ищутся в интернете. У гугла адрес ДНС 8.8.8.8.
    В роутере всего лишь промежуточный ДНС, он сам только пересылает запросы на внешние сервера ну и как кэш то же работает. ДНСы провайдеров могут тупить или выдавать устаревшие адреса, все зависит от степени безответственности данного конкретного провайдера.
  • Почему забивается кеш DNS?

    @res2001
    cmd/bat из тегов, думаю, стоит убрать.

    Чей ДНС сервер используете?

    Судя по тексту ошибки проблема не в кеше, а в том, что ДНС сервер долго отвечает или совсем не отвечает и клиент отваливается по таймауту.
    Это можно протестировать с помощью утилиты nslookup - она шлет прямые запросы ДНС серверу, минуя резолвер ОС.
  • Сможет ли взаимодействовать 2 разные Unix системы?

    @res2001
    varfi,
    это просто для примера, что в голову пришло. вопрос в том будут ли взаимодействовать дебиан и ред хат системы между собой?

    Что им может помешать взаимодействовать? Тут главное, чтоб они разговаривали между собой на одном языке, т.е. использовали один и тот же протокол. А так вы можете хоть винду с ардуиной заставить взаимодействовать, что, собственно, многие и делают.
  • Как задать значение последней переменной?

    @res2001
    Третий вариант, по моему, утопия. Он создает больше проблем, чем решает их. Может зависеть от изменений в коде, и, возможно, от опций компилятора. Но, конечно, имеет право на существование. Из плюсов этого варианта - накладные расходы возникают только в момент срабатывания сигнала (если не считать за них вызов sigaction).
    В первых двух вариантах накладные расходы будут на каждой операции, не зависимо был сигнал или нет.
    Вариант с setjmp/longjmp, скорее всего, будет более медленным, чем проверка.

    Подумал тут, что если перед операцией инициализировать а нулем, в обработчике SIGFPE просто ничего не делаем, но он должен быть. Будет ли в таком случае значение а чем-то перезаписано при срабатывании сигнала? И если будет то чем?
    Тут еще важно, чтоб инициализацию а нулем компилятор не выкинул из кода в рамках оптимизаций. Не уверен, что поможет, но может для этого объявить а как volatile.
  • Есть ли смысл в уточнении типов данных чисел? И что это даст?

    @res2001
    Vitsliputsli, В этом примере это автоматический массив и лежит он на стеке. Был бы вектор или выделялся бы с помощью new - лежал бы в куче.
    Впрочем, не важно, где лежит массив. Конкретно в этом примере массив маленький и экономия мизерная. По быстродействию вообще не будет никакого плюса, т.к. и без оптимизации весь массив легко укладывается в кэш первого уровня.
    Был бы массив в миллион элементов, например, тогда экономия в 1 байт на одном элементе приводила бы к экономии в 1 Мб памяти, это уже существенно. Кроме того, на таких количествах элементов начинает играть заметную роль попадания в кэш, что на массиве с меньшим размером элемента будет происходить чаще.