静态验证 p/invoke

本文关键字:invoke 验证 静态 | 更新日期: 2023-09-27 18:36:54

有没有办法静态/针对.h文件验证p/invoke,这样就不会遇到运行时错误,例如"对本机方法的调用使堆栈不平衡"?

最好是一种跨平台的方式,也可以处理.so文件。

静态验证 p/invoke

你可以自己推理出来。 如果可以进行准确的静态分析,那么没有人再需要编写[DllImport]声明,分析工具可以自动生成它们。

不存在这样的工具,C 声明太模糊了。

如果没有额外的标记(如消除指针和数据流歧义的 SAL 注释),分析工具将无法工作。 例如,Pinvoke 互操作助手使用它。 IDL 中使用的属性起着非常相似的作用,在 COM 中自动生成类型库和代理/存根。