Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Похоже только через NtQuerySemaphore 13.09.09 09:39 Число просмотров: 1364
Автор: amirul <Serge> Статус: The Elderman
|
> В документации написано, что если вызвать функцию > ReleaseSemaphore со значением счётчика, превышающим cSemMax > (максимальное значение семафора), то текущее значение > счётчика не изменится, а в lpPreviousCount будет помещено > текущее значение.
Ничего подобного в документации не написано:
lReleaseCount
The amount by which the semaphore object's current count is to be increased. The value must be greater than zero. If the specified amount would cause the semaphore's count to exceed the maximum count that was specified when the semaphore was created, the count is not changed and the function returns FALSE.
> У меня данная афёра не прошла - в lpPreviousCount > возвращается 0xcccccccc. Что делать? Это не возвращенное значение, а неизмененное. В дебаг билдах неинициализированные стековые переменные инициализируются вот этим вот 0xcc. В релизе кажись так и остаются неинициализированными.
Собственно сабж. Хвала богам, о совместимости с 9x беспокоиться не нужно. Использование недокументированного апи - это, конечно, плохо (если что я тебе этого не советовал ;-) ), но если очень нужно, то можно.
|
|
|