有人可以告诉我这段代码有什么问题吗
我只是从 kernel32.dll 调用 Sleep 函数
怎么了?
我使用的是 Visual Studio 2008。
任何帮助将不胜感激。
非常感谢。
__asm
{
mov eax, 77e2ef66h
push 9999
call eax
}
你从哪里得到这个神奇的数字,77e2ef66h
?通常,如果您从内联汇编器调用 Win32 API 函数,您会执行以下操作:
__asm
{
push 9999
call Sleep
}
Win32 中的函数没有固定地址(无论“DLL 导出查看器”可能显示什么)。函数通过以下方式链接name or ordinal在加载时(由 Windows PE 加载程序)并且不位于固定地址。事实上,函数的实际地址可能会在不同的 Windows 版本、同一版本的 Windows 内的子版本之间、不同的机器上、甚至可能在程序的一次运行与下一次运行之间发生变化。
(免责声明:我已经很久没有这样做了,所以上面的代码示例的细节无疑是错误的,但我知道你绝对不需要使用幻数。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)