Вы читаете alexwwolf

AlexWWolf's live journal

Свежие записи

Январь, 1, 2015

2015 - год быка

Верхняя запись
Поделиться
 Это специальная, вынесенная наверх запись - для того, чтобы можно было в комментах задать мне вопрос на произвольную тему. Или просто чего-нибудь написать. Ну и пусть будет деление по годам.

Март, 19, 2015

Жизненное

Поделиться
Вчера какой-то парень зашел при мне в аптеку и попросил жидкий азот. Поржал.

Февраль, 3, 2015

Жизненное

Поделиться
Трудно заниматься порабощением мира, если 90 процентов времени уходит на зарабатывание денег.

Декабрь, 31, 2014

2014 - год петуха

Поделиться
 Это специальная, вынесенная наверх запись - для того, чтобы можно было в комментах задать мне вопрос на произвольную тему. Или просто чего-нибудь написать. Ну и пусть будет деление по годам.
Счастья, успехов, и удачи всем в Новом Году!

Декабрь, 10, 2014

37

Поделиться
Поздравляю меня с днем рождения.

UPD: Всем спасибо за поздравления!

Декабрь, 5, 2014

Цитата дня

Поделиться
Надо ввести традицию: в честь последнего взноса по ипотеке банк дарит заемщику носок.

(r) bash.im

Ноябрь, 25, 2014

Пример кода следующий:
void CNetServiceBase::DetectCurrentIPAddress()
{
   // получение текущего IP, не соответствующего localhost
   // Minimum supported client: Windows Vista

   ADDRINFOW hints;

   ZeroMemory( &hints, sizeof(hints) );
   hints.ai_family = AF_INET; // читаем только IPv4
   hints.ai_socktype = SOCK_STREAM;
   hints.ai_protocol = IPPROTO_TCP;
        
   ADDRINFOW *result = NULL;

   int nErr = GetAddrInfoW(L"", NULL, &hints, &result);

   // вызов GetAddrInfoW может приводить к старту 
   // сторонних потоков, которые могут висеть 
   // и не завершаться около 2-3 минут

   if (nErr != 0)
   {
      CTERException ex(21, 
         L"Код ошибки = {0}", 1);
      ex.SetParameter(0, WSAGetLastError());
      throw ex;
   }

   ADDRINFOW *curPtr = NULL;
   bool bFoundAddr = false;
    
   for(curPtr = result; curPtr != NULL; 
      curPtr = curPtr->ai_next)
   {
      if (curPtr->ai_family == AF_INET && 
          curPtr->ai_addr != NULL)
      {
         mCurrentSockAddr_ipv4 = 
             *((struct sockaddr_in *) curPtr->ai_addr);
         bFoundAddr = true;
         break; // берем первый из списка
      }
   }

   FreeAddrInfoW(result);

   if (!bFoundAddr)
      throw CTERException(22, 
         L"Не найден текущий адрес для IPv4");

   if (!InetNtop(AF_INET, 
      &(mCurrentSockAddr_ipv4.sin_addr), mCurrentIPString, 46))
      throw CTERException(23, 
         L"Не удалось преобразовать IPv4-адрес в строку");
}
Здесь следует отметить две вещи. Первое - это имя хоста для GetAddrInfoW. Передается пустая строка (не NULL). Второе (и это неприятно) - вызов функции GetAddrInfoW приводит к созданию нескольких потоков, которые могут выполняться еще 2-3 минуты с момента вызова. Если в этот момент закрыть приложение - процесс будет висеть и ждать завершения этих потоков.

Ноябрь, 14, 2014

Цитата дня

Поделиться
Мы им радиосигналы посылаем, а они нам круги на полях рисуют. В итоге никто никого не понимаeт.

(r) d3

Ноябрь, 8, 2014

Есть следующий код:
public class A
{
   public double? Prop {get; set;}
}

public class B
{
   public double? Prop {get; private set;}

   public void AddValue(A row)
   {
      Prop += row.Prop;
   }
}
Спрашивается, где здесь логическая ошибка?
Ответ здесьСвернуть )

жж счетчик - lj counter

Разработано LiveJournal.com