прикол от ms

Тема в разделе "WASM.HEAP", создана пользователем cupuyc, 21 ноя 2009.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    видел давно, но обратил внимание только сейчас. в msdn example:
    Код (Text):
    1. [b]BOOL bRet; [/b]
    2. //...
    3. while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
    4. {
    5.     if ([b]bRet == -1[/b])
    6.     {
    7.         // handle the error and possibly exit
    8.     }
    9.     else
    10.     {
    11.          TranslateMessage(&msg);
    12.          DispatchMessage(&msg);
    13.     }
    14. }
    там же, в msdn:
    вот так-то, следуй заветам microsoft :)))))))))))
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    cupuyc

    Та же хрень с TrackPopupMenu | TPM_RETURNCMD
     
  3. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    Я может чегото не понимаю, но четко написано "If there is an error, the return value is -1. For example, the function fails if hWnd is an invalid window handle or lpMsg is an invalid pointer. To get extended error information, call GetLastError."
     
  4. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    cupuyc
    что не наромального ??

    bRet = 0 (ложь - нет ошибки)
    bRet = 1 (истина - есть ошибка)

    другими словами bRet отражает истинность высказывания "во время исполнения произошла ошибка"
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    *ненормального
     
  6. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Rockphorr
    Нет, в данном случае, 1 если сообщение не WM_QUIT, 0 если WM_QUIT и -1 если ошибка. Вообще нормально сделали, тока непонятно зачем было переменную как BOOL объявлять, сделали бы уже дворд, а то немного калечно получается.
     
  7. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    За такой стайл аффтара надо было пронзить анальным вибратором с шипами, густо обмазанными йадом. А потом ещё "там три раза провернуть"(с)Лермонтов, чтобы наверняка.
     
  8. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Та знаю, но зачем в данном случае было так делать? Это не прально отражает ее суть...
     
  9. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    суть данной переменной и значений которые она может принимать :)
    где это ты такое нашел?))
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    ну 1 и 0 в данном случае разбирает while - для if уровнем ниже это безразлично
     
  11. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    общий стандарт гласит то, что я написал в своём первом посте:

     
  12. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
  13. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    За тем, что MSDN - основной документ для разработки windows приложений. Разработкик в первую очередь смотрит в MSDN, а не в сорцы винды. Когда я вижу у функции тип возвращаемого значения BOOL я автоматически понимаю что функция может выполниться либо успешно, либо неуспешно (для этого и нужен тип BOOL, о чём и написано в MSDN).
    Совершенно не важно сколько под данный тип отводится памяти и как он описан в WinDef.h. Важно то, какие возможные значения может принимать переменная этого типа. Иначе зачем тогда вообще переопределение типов? зачем нужен тип BOOL?
     
  14. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    Наш человек )) У Лермонтова "повернуть" было