使用带有.NET语言的C ++头文件

时间:2009-03-17 15:28:07

标签: .net c++ com interop windows-media-player

我尝试使用.NET SDK中的“.h”文件(可能是C#),但没有成功。此标头通过COM公开一些Windows Media Player功能。如果我使用Win32 C ++,我可以毫无问题地使用它,所以我认为我可以使用托管C ++作为“桥”将它暴露给C#。

头文件是Windows Media Player SDK 11(Windows SDK 6的一部分)附带的subscriptionservices.h

这可能吗?我怎么能在.NET应用程序中使用该头文件?

谢谢, Eduardo Cobuci

6 个答案:

答案 0 :(得分:1)

您可以使用PInvoke与Win32互操作。如果您尝试使用COM对象,则应该能够添加对项目的引用。你看过this article?

吗?

更实际的是,你需要了解你正在做的工作。如果您要进行大量的指针运算,那么我建议使用托管c ++。如果不是C#。祝你好运。

答案 1 :(得分:1)

如果您希望从头文件中使用特定代码段或类型,则可以将它们粘贴到PInvoke Interop Assistant中并获取为您生成的C#代码。

http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120

答案 2 :(得分:0)

试试PInvoke。我不认为你可以使用实际的头,但你可以引用外部非托管DLL中的函数。

答案 3 :(得分:0)

是的 - 有可能。 P / Invoke是你的朋友。使用此链接翻译标题。

Platform Invoke Data Types

答案 4 :(得分:0)

如果您这样做,这可能会让您在C ++路径上领先一步。

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

请注意,WMP接口有一些棘手的P / Invoke接口。对我来说,编写C ++包装器更容易。

答案 5 :(得分:0)

如果API只是你可以使用PInvoke,如果它很复杂我会建议使用C ++ / CLI。这允许您在托管和非托管世界之间创建“桥梁”。