3

无需详细说明,假设我需要使用 C 代码中的非标准调用约定。使用此约定的函数可能会在堆栈上返回多个值。将每个函数放入使用内联汇编进行调用的包装器中,通过给定包装器的指针参数发送输出是很简单的。不幸的是,这个解决方案不能很好地概括,我需要一些适用于一般情况的东西。我应该放弃并使用宏来封装包装,还是有更通用的方法来编写,例如,invoke处理管理堆栈的肮脏工作的可变参数函数?

4

1 回答 1

3

无论您选择哪种方法,您都需要在汇编中编写包装器。没有办法摆弄 C 中的堆栈。我确实喜欢您编写一个invoke完成所有脏工作的单个包装器(在 asm 中),然后用 C 包装它的想法。

于 2010-10-26T02:35:35.600 回答