V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ChaosesIb  ›  全部回复第 4 页 / 共 4 页
回复总数  66
1  2  3  4  
2022-02-26 13:56:10 +08:00
回复了 NewConn 创建的主题 Windows 关于 Windows 10 环境变量的诡异情况
@lonewolfakela 单条环境变量的上限其实是 32760 字符,但总环境块的上限是 32767 ,cmd 上限是 8192 ,注册表和 ShellExecute 是 2048 ,所以最小上界还是 2048 字符。
详见 What is the maximum length of an environment variable? - The Old New Thing
aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL29sZG5ld3RoaW5nLzIwMTAwMjAzLTAwLz9wPTE1MDgz
2022-02-26 12:22:01 +08:00
回复了 hi543 创建的主题 Windows window 运维大佬请:有没有通用的登录器?
Windows GUI 自动化从原理上可以分为 HID (键鼠)模拟、窗口消息和 UI Automation 三种。只是登陆的话用 HID 模拟应该就足够了,实现起来也简单。工具方面可以用 pywinauto 或者 Power Automate ,pywinauto 三种方式都支持,Power Automate 只支持 HID 和 UIA ,不过是低代码,开箱即用。另外补充一下,pyautogui 只支持 HID ,AutoHokey/AutoIt 是门语言,HID 支持得比较好,不过 UIA 需要第三方库。
2022-02-26 00:00:34 +08:00
回复了 Kasumi20 创建的主题 C++ 64 位汇编 4 位以上的参数入栈为什么从 32[rsp]开始?
保留 shadow space 主要是为了方便保留参数的原值,以及使得参数能够在栈上保持连续,方便遍历栈( va_list )。
另外,即使参数不到 4 个,微软的 x64 调用约定也要求保留 shadow space 。这条规则的主要原因是 C 允许 unprototyped function ,一个函数在被调用时传入了几个参数是不确定的,如果不统一 shadow space 大小,编译器实际上就没法利用 shadow space 了。
shadow space 提供的好处算不上很强,不过倒也没什么开销,所以微软这么规定也没什么。另一个主流 x64 调用约定 System V 没有 shadow space ,不过有个 red zone ,虽然同样是预留空间,不过设计 red zone 的原因主要跟内核中断有关,和 shadow space 不是一码事。

可以读下 Raymond Chen 的文章,更详细了解一下:
Can an x64 function repurpose parameter home space as general scratch space? aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL29sZG5ld3RoaW5nLzIwMTMwODMwLTAwLz9wPTMzNjM=
Why does the x64 calling convention reserve four home spaces for parameters even for functions that take fewer than four parameters? aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL29sZG5ld3RoaW5nLzIwMTYwNjIzLTAwLz9wPTkzNzM1
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2249 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 08:53 · PVG 16:53 · LAX 01:53 · JFK 04:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.