Ах! Ох! Я написал мультипоточное приложение для бабушки, приехал к ней - а у неё виндовс 98 и моё приложение не работает корректно.
Запомните:
http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx *
Passing NULL for the 'lpThreadId' parameter causes the function to fail.
|
Необязательный в NT, 2000, XP, параметр
LPDWORD lpThreadId в системах 95, 98, Me не может принимать NULL.
Поэтому, для совместимости, в 6-ой аргумент всегда надо передавать указатель на переменную. Пусть даже идентификатор потока вам не нужен, а переменная будет уничтожена сразу после выполнения
CreateThread. Это избавит от лишних проблем
(т.к. программа не закрешится на вызове CreateThread, а просто не создаст поток, то, с большой вероятностью, глюк вы поймаете на завершении [несуществующего] потока).
*
- особо радует что такая ценная информация запихнута где-то в коментах.
см. ещё
http://vsokovikov.narod.ru/New_MSDN_...eatethread.htm