Ну во-первыхникогдане вызывай из VC++ CreateThread, а вызывай _beginthreadex (в других языках ищи аналог (кроме асма, конечно:)).
Во-вторых, если у тебя несколько потоков, то не устанавливай переключатель на однопоточные либы - этонеправильно ибо они написаны дляоднопоточногоприложения.
Далее: я вижу уже написали, но повторю: в многопоточной рантайм библиотеке srand инициализирует переменную только своего потока, потому одинаковые числа и выводило. Так что srandнужновызывать в каждом потоке. Причём иного пути, как мне кажется, нет, и быть не может.
Вообще-то комбинируя неправильные действия (например, как у тебя: выбрав однопоточное приложение) можно добиться правильного внешнего результата, но это не правильно и обязательно скажется потом.
И последнее: купи книгу Рихтера и не мучайся - там всё это описано.
|