2010-04-19 106 views
3

从版本到.NET,向.NET添加了等于P/Invoke的更多功能使用PInvoke与.NET提供的功能

现在我的脑海里有两个问题。

1)哪一个是速度的期限更喜欢其他的,通常我使用的.Net的功能,但在紧密循环我真的不知道哪一个会是更快的。

2)是否有提供的反零件列表中的任何网站?

回答

4

1)如果有一个.NET函数,你应该的,当然,用它 - 除非你有一个很好的理由不这样做。

2)是的,有是Win32 API函数映射到.NET方法,虽然这是很老的网页 - 它适用于.NET 1.1。见http://msdn.microsoft.com/en-us/library/aa302340.aspx

编辑:没有,我所知道的任何更新名单,但一招,你可以尝试在打开.NET Framework程序集(如mscorlib程序,系统等)的反射器和搜索的Win32方法名称。如果程序集在内部调用它,则应该能够以这种方式找到它,然后找到它的引用位置,以便将它跟踪到可以调用的公用方法(如果有的话)。如果没有,至少你可以复制P/Invoke签名而不必弄清楚。

+0

有什么新的在那里?我碰到过,但你说它很旧。管理等同于许多的Win32 – 2010-04-19 03:54:43

+1

pinvoke.net列表的函数 – 2010-04-19 04:25:53

+0

至于在一个紧密的循环性能也越高,如果速度是绝对关键的有很多情况下,在.NET中使用的PInvoke实际上将使其比任何.NET方法或慢得多编写一个Win32应用程序。 (有时它最快就是为了这个紧密的循环而编写一个Win32应用程序,然后解析.Net应用程序中的日志) – 2010-10-04 16:20:25