2009-03-17 4 views
0

.NET 언어 (아마 C#)의 Windows SDK에서 ".h"파일을 사용하려고했지만 성공하지 못했습니다. 이 헤더는 COM을 통해 일부 Windows Media Player 기능을 제공합니다. Win32 C++을 사용하면 문제없이 사용할 수 있으므로 Managed C++를 "Bridge"로 사용하여 C#에 노출시킬 수 있다고 생각했습니다..NET 언어의 C++ 헤더 사용

헤더 파일은 Windows Media Player SDK 11 (Windows SDK 6의 일부)과 함께 제공되는 subscriptionservices.h입니다.

그럴 수 있습니까? .NET 응용 프로그램에서이 헤더 파일을 어떻게 사용할 수 있습니까?

감사합니다, 에두아르도 Cobuci

+0

그래서 무엇이 문제입니까? –

+0

그게 가능합니까? .NET 응용 프로그램에서이 헤더 파일을 어떻게 사용할 수 있습니까? 감사! –

답변

1

당신은 Win32에서와 상호 운용성에 PInvoke를 사용할 수 있습니다. COM 개체를 사용하려는 경우 프로젝트에 대한 참조를 추가 할 수 있어야합니다. 보셨습니까 this article?

더 구체적으로 당신이하고있는 일의 종류를 이해해야합니다. 포인터 연산을 많이 할 예정이라면 managed C++을 추천합니다. C#이 아니라면. 행운을 빕니다.

+0

COM 일을 쓰려고 했으므로 +1을 대신 사용합니다. 헤더 파일은 확실히 COM입니다. – OregonGhost

+0

예 ... COM interop은 많은 Microsoft API가 COM 개체로 제공되기 때문에 매우 유용합니다. –

+0

OpenGL ES가 COM 이었으면 좋겠다. NET에서 사용하는 것은 그렇게 악몽이 아닐 것이다. – OregonGhost

0

PInvoke을보십시오. 실제 헤더를 사용할 수는 없지만 외부 관리되지 않는 DLL에서 함수를 참조 할 수는 있습니다.

0

이 당신에게 머리를 당신이 그 길을 갈 경우 C++ 경로에 시작을 줄 수 있습니다.

WMP 인터페이스 P 일부 까다로운 인터페이스를 가지고

http://code.msdn.microsoft.com/wmpinterop

주 /로 호출. 필자는 C++ 래퍼를 작성하는 것이 더 쉽다.

0

API가 PInvoke를 사용할 수 있다면 복잡한 경우 C++/CLI를 사용하는 것이 좋습니다. 이를 통해 관리되는 세계와 관리되지 않는 세계 사이에 '다리'를 만들 수 있습니다.