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