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

Discussion in 'WASM.BEGINNERS' started by Greedy_Fly, Nov 24, 2010.

  1. Greedy_Fly

    Greedy_Fly New Member

    Blog Posts:
    0
    Joined:
    Nov 3, 2009
    Messages:
    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

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

    baldr New Member

    Blog Posts:
    0
    Joined:
    Apr 29, 2010
    Messages:
    327
    7mm,

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

    7mm New Member

    Blog Posts:
    0
    Joined:
    Dec 15, 2009
    Messages:
    442
    Не, ну можно конечно WaitForSingleObject(hThread, INFINITE) влепить и ждать пока поток не отработает... Вопрос был как я понял не из области теоретики :)