2
有人请告诉我这段代码有什么问题 我只是调用kernel32.dll中的Sleep函数 出了什么问题? 我正在使用Visual Studio 2008. 任何帮助将不胜感激。 非常感谢。如何从内联汇编程序调用Win32 API函数?
__asm
{
mov eax, 77e2ef66h
push 9999
call eax
}
有人请告诉我这段代码有什么问题 我只是调用kernel32.dll中的Sleep函数 出了什么问题? 我正在使用Visual Studio 2008. 任何帮助将不胜感激。 非常感谢。如何从内联汇编程序调用Win32 API函数?
__asm
{
mov eax, 77e2ef66h
push 9999
call eax
}
你从哪里得到这个神奇数字,77e2ef66h
?通常,如果你从内联汇编程序调用Win32 API函数,你会做这样的事情:在Win32中
__asm
{
push 9999
call Sleep
}
函数没有一个固定的地址(无论你的“DLL导出查看器”可能会显示)。在加载时(通过Windows PE加载程序),函数通过名称或序号链接,并且不位于固定地址。实际上,函数的实际地址可以在Windows版本,Windows相同版本下的下载,机器之间以及甚至可能从程序的一次运行到下一次运行之间改变。 (免责声明:我已经做了很长时间,所以上面代码示例的细节无疑是错误的,但我知道你绝对不需要使用幻数)。