Com 针对windows mobile的C#Directshow-策略? 我想弄清楚如何将一些DirectShow功能添加到C++应用程序(.NET CF 3.5上运行在Mobile 6和UP上),并且我很难找出如何在托管C语言中使用非托管C++类(ES)之间的差距。

Com 针对windows mobile的C#Directshow-策略? 我想弄清楚如何将一些DirectShow功能添加到C++应用程序(.NET CF 3.5上运行在Mobile 6和UP上),并且我很难找出如何在托管C语言中使用非托管C++类(ES)之间的差距。,com,compact-framework,mobile,directshow,Com,Compact Framework,Mobile,Directshow,我已经用C++编写了所需的功能:基本上,我有一个管理器类,它使用COM开发所需的directshow功能。快速免责声明:我是新来的COM,我非常新的C++与C++的集成。 我真的希望有知识渊博的人能为我进一步研究提供一个基本策略。以下是我研究过的一些,以及我发现的问题: < > >强>创建C++ dll,然后从C中调用它。 BR> 问题:因为我在一个智能设备平台上工作,创建一个托管C++ DLL不是一个选项,所以C很不幸不能直接调用我的C++ DLL。正在创建一个C(C++)的“非托管C++”D

我已经用C++编写了所需的功能:基本上,我有一个管理器类,它使用COM开发所需的directshow功能。快速免责声明:我是新来的COM,我非常新的C++与C++的集成。 我真的希望有知识渊博的人能为我进一步研究提供一个基本策略。以下是我研究过的一些,以及我发现的问题:

< > >强>创建C++ dll,然后从C中调用它。<强> BR> 问题:因为我在一个智能设备平台上工作,创建一个托管C++ DLL不是一个选项,所以C很不幸不能直接调用我的C++ DLL。正在创建一个C(C++)的“非托管C++”DSE管理器类的实例(通过COM)是最好的选择吗?

<强>创建一个C++ DLL,然后只需调用pjKe/dLimPosits所需的方法。< /强> BR> 问题:我的解决方案有一个事件监听器之类的东西,所以我需要维护manager类的一个实例(参见选项3),而不仅仅是调用单个方法

< P>强>复制C++中的C++类,然后调用来自C++的COM调用DSE方法。< /强> 问题:对我来说,这似乎是最好的选择,但根据我在这里发现的,我需要首先“创建com接口和类型的托管定义”,不幸的是,我找不到要通过TLBImp.exe导入的directshow TLB文件。WM6SDK提供给我的都是dshow LIBs、pdb和exp。正如一些网站所建议的那样,我甚至找不到IDL文件来创建TLB

目前,我仍在调查一些事情,但现在有点卡住了。有什么建议吗?
提前谢谢

您可以将其作为移植指南。亚历克斯·莫古连科也是一个很好的资源


编辑:我想我没有直接回答关于战略的问题。是的#3是最好的选择。包装DShow并调用它,不要再添加另一层混乱的间接寻址(COM已经够混乱的了)。

Alex Mogurenko的文章是一个很大的帮助,特别是因为他没有去,似乎不必去处理我担心的所有TLB文件垃圾。我认为这是我工作的一个很好的起点。谢谢