Где вы взяли это магическое число, 77e2ef66h
? Обычно, если вы вызываете функции Win32 API из встроенного ассемблера, вы должны сделать что-то вроде:
__asm
{
push 9999
call Sleep
}
Функции в Win32 не имеют фиксированного адреса (независимо от того, что может отображать ваш «DLL Export Viewer»). Функции связаны name или ordinal во время загрузки (загрузчиком Windows PE) и не расположены по фиксированным адресам. Фактически, фактический адрес функций может меняться между версиями Windows, подвыпусками в одной и той же версии Windows, с компьютера на компьютер и даже, возможно, от одного запуска вашей программы к следующему.
(Отказ от ответственности: с тех пор, как я это сделал, прошло очень много времени, поэтому детали приведенного выше примера кода, несомненно, неверны, но я знаю, что вам точно не нужно использовать магические числа.)