我正在尝试确保优化我的托管到非托管调用。是否有一种快速的方法可以通过查看 IL 来查看是否有任何非 blittable 类型不小心进入了我的 pinvoke 调用?

我尝试在 .dll 中编写两个非托管函数,一个使用 bool(非 blittable),另一个使用 int。但是在查看 IL 时我没有看到任何不同,让我知道它正在做一些额外的事情来编码 bool。

最佳答案

IL 中没有与编码相关的内容。相反,您应该按照 MSDN 中描述的规则分析方法的参数类型(带有修饰符)和返回类型。这些规则相当简单,应该可以编写一个自动检查器并将其插入例如FxCop。

关于c# - Blittable Vs。 IL 中的非 Blittable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2489136/

10-10 14:23