静态验证p / invoke

时间:2013-10-26 14:15:28

标签: c# f# clr pinvoke native

有没有办法静态/反对.h-files验证p / invoke,以便不会遇到运行时错误,如'调用本机方法使堆栈失衡'?

最好是跨平台的方式,也可以使用.so文件。

1 个答案:

答案 0 :(得分:1)

你可以自己解决这个问题。如果可以进行准确的静态分析,那么没有人会再次编写[DllImport]声明,分析工具可以自动生成它们。

没有这样的工具,C声明太模糊了。

您的分析工具无法工作,不能没有额外的标记,如SAL annotations,这可以消除指针和数据流的歧义。例如,Pinvoke Interop Assistant使用它。 IDL中使用的属性起着非常相似的作用,在COM中自动生成类型库和代理/存根。