我在哪里可以了解更多有关P / Invoke的信息?

时间:2009-12-04 22:48:37

标签: c# .net pinvoke

最近,我一直在与非托管库进行大量的交互,并且我一直回到SO来询问有关某些方法签名的问题,因为我不是C / C ++程序员(虽然它对我来说并不完全陌生) 。在某些情况下,两种不同方法中相同类型的参数需要两个不同的P / Invoke签名(例如:有时我可以使用out关键字,有时我必须使用OutAttribute等)。我无法真正看到它背后的任何推理。

是否有任何好的资源可以帮助理解P / Invoke并为不是C / C ++专家的人更好地编组?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

问题在于,C / C ++语言没有为您提供查看函数是生成还是使用数据以及参数指针是指向单个值还是值数组的方法。学习语言或学习P / Invoke对此没有任何帮助,虽然它可以让你更好地猜测它。

您只能通过了解有关您正在编写P / Invoke声明的特定本机代码的更多信息来解决此问题。这需要它的源代码和对语言的一些熟悉。或者与代码的原始作者或所有者建立良好的工作关系。

Adam Nathan's book是标准参考。