跨语言调用FFI

函数调用约定与CPU架构和操作系统有关,涉及到跨语言调用时最好了解一下。常见函数调用约定,参考1,参考2,参考3。

四年前做 erlang调用C++的时候,由于各个系统下的函数调用约定涉及到的函数压栈不同,我需要为同一个功能在不同操作系统下写三份代码(主要时函数声明和调用约定的不同)。后来无意中搜索到 libffi,只需要按函数声明的参数顺序及类型传参,真正实现了一份代码,到处编译。

ffi 的原理及调用过程,网上有一篇文章讲得比较清楚,参考。

 

你可能感兴趣的:(C++,ffi,调用约定)