ATL Thunk是否支持跨平台运行?包括ARM64架构吗?
ATL窗口Thunk的跨平台兼容性与ARM64支持情况
ATL的窗口thunk本质依赖特定架构的汇编指令和调用约定实现,这类底层技巧和CPU架构强绑定,无法直接跨平台运行。x64平台的thunk实现基于x86-64的寄存器规则、栈布局及调用约定编写,放到ARM64架构下完全无法执行。
针对ARM64平台,微软已提供适配后的ATL版本:
- 随VS2017及后续版本发布的新版ATL,内置了ARM64架构专属的thunk实现,替换了x64特有的汇编代码,改用符合ARM64调用约定的逻辑完成窗口过程转发。
- 只要使用支持ARM64的Visual Studio版本,编译ARM64目标的ATL程序时,编译器会自动选用适配ARM64的thunk代码,原有ATL窗口逻辑无需手动修改。
验证方法:你可以在x64设备上通过VS的交叉编译功能生成ARM64架构的ATL程序包,部署到ARM64设备测试后,核心的窗口创建、消息处理逻辑均可正常工作。
内容的提问来源于stack exchange,提问作者user29463846
相关产品推荐
相关产品推荐

