вопрос про CreateThread...

Тема в разделе "WASM.BEGINNERS", создана пользователем Greedy_Fly, 24 ноя 2010.

  1. Greedy_Fly

    Greedy_Fly New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    15
    можно ли передать в CreateThread локальную переменую?
    :
    blabla proc
    LOCAL param[256]:BYTE
    ...

    invoke CreateThread, 0, 0, addr func, ??? , 0, addr Th
    ...
    blabla endp

    func proc p:dword
    ....
    ....
    ret
    func endp
     
  2. 7mm

    7mm New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2009
    Сообщения:
    442
    Можно передать 4 байта, или указатель. Если это указатель на локальную переменную, то по выходу из функции, где она объявлена, обращение к ней недопустимо.
     
  3. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    7mm,

    Даже если это адрес локальной переменной, ничего страшного. Просто надо понимать что это адрес в стэке другого потока. Как пример, можно сказать новому потоку поджать мой стэк где-то до переданного ему указателя. Сделать это грамотно — другой вопрос. :derisive:
     
  4. 7mm

    7mm New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2009
    Сообщения:
    442
    Не, ну можно конечно WaitForSingleObject(hThread, INFINITE) влепить и ждать пока поток не отработает... Вопрос был как я понял не из области теоретики :)