2010-04-19 3 views
3

.NET 버전에서 버전으로 P/Invoke와 동일한 기능이 .NET에 추가되었습니다.PInvoke 대 .NET 제공 함수 사용

이제 내 마음에는 두 가지 질문이 있습니다.

1) 속도면에서 어느 쪽이 더 선호되는지는 일반적으로 .Net 기능을 사용하지만 단단한 루프에서는 어떤 것이 더 빠를 것인지 실제로 알지 못합니다.

2) 카운터 파트 목록을 제공하는 웹 사이트가 있습니까?

답변

4

1) .NET 기능이있는 경우, 물론 사용해서는 안됩니다.

2) 예, 꽤 오래되었지만 Win32 API 함수를 .NET 메소드에 매핑하는 페이지가 있습니다. .NET 1.1에 적용됩니다. http://msdn.microsoft.com/en-us/library/aa302340.aspx

편집을 참조하십시오가 제가 알고 더 새로운 목록입니다,하지만 당신은 리플렉터 (mscorlib에, 시스템 등 같은) .NET Framework 어셈블리를 열고를 검색을 시도 할 수 하나의 트릭 Win32 메서드 이름. 어셈블리가 내부적으로 호출하는 경우이 방법으로이 메서드를 찾아서 호출 할 수있는 공용 메서드 (있는 경우)로 추적하기 위해 참조되는 위치를 찾을 수 있어야합니다. 그렇지 않은 경우 적어도 P/Invoke 서명을 알아낼 필요없이 복사 할 수 있습니다.

+0

밖에 최신 정보가 있습니까? 나는 그걸 보았습니다. 그러나 당신이 말했듯이 그것은 오래되었습니다. –

+1

pinvoke.net은 많은 Win32 함수 –

+0

에 대해 관리되는 항목을 나열합니다. 엄격한 루프의 성능에 대해서는 속도가 절대적으로 중요한 경우 .NET에서 PInvoke를 사용하면 실제로 .NET 메서드 나 .NET 메서드보다 훨씬 느려지는 경우가 많습니다 Win32 응용 프로그램 작성. (때로는 그 단단한 루프를 위해 Win32 앱을 작성하고, .Net 앱의 로그를 구문 분석하는 것이 가장 빠릅니다.) –