2010-04-09 6 views
2

관리되는 프로토 타입이 무엇인지 명확히해야합니다.관리되는 프로토 타입이란 무엇입니까?

[DllImport("user32.dll")] 
     private static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type); 

는 항상 개인 당신이 같이 DllImport 특성이 있어야합니다이 즉, 다음 방법 signiture를 뜻 :

나는 그것이 같이 DllImport 특성을 사용하는 등 같은 방법이있는 방법이라고 생각 정적 extern ???

건배

답변

3

함수 프로토 타입이없이 때문에 반드시 사용 가능한 "일부 코드는"보는 것을하지 않고, 일부 코드를 호출하는 방법을 해결하기 위해 컴파일러를위한 방법으로 단독으로 선언 된 함수를 인 프로토 타입은 인자 타입과 관련하여 블라인드 비행을 할 것입니다.

따라서 P/Invoke 기능을 위해서. C#과 같은 관리 언어에서 네이티브 DLL의 함수를 호출하는 경우 .NET에서 해당 함수, DLL을 래핑하거나 순수 관리 코드로 유사한 기능을 구현하는 기존 클래스를 찾을 수없는 경우 프로토 타입이 필요합니다.

그렇습니다. 기능이있는 whith DLL을 지정하려면 [DllImport...] 속성이 필요합니다. 정적이고 extern이어야하지만 대개는 그렇지만 반드시 개인용이어야 할 필요는 없습니다. 기능을 관리 클래스에 포함시켜 나머지 코드에서 쉽게 사용할 수 있도록합니다.

관련 문제