在没有regsvr32的情况下从文件创建COM对象是否可以在不使用regsvr32的情况下仅使用dll创建COM对象的实例?我的主要目标是创建directshowfilter的一个实例并将其插入到我的图中-但我不希望regsvr32注册过滤器。过滤器将在一个dll/ax中,它将与我的应用程序一起分发,并将出现在我的路径中。我也会知道CLSID。所以我基本上只需要一种方法来同时创建一个只有dll/ax和CLSID的类型的实例。这在C#中可能吗?听起来您想使用免注册COM。可能地,LoadLibrary()和GetProcAddress获取DllGetClassObject()入口点。您正在绕过一堆旨在让您成功的COM管道代码。特别是负责ThreadingModel的东西。或者您可以使用技巧使32位代码在64位进程中运行,这对于视频来说通常很重要。将无注册COM与清单一起使用会使您重新陷入困境。当你创建一个COM实例时,Windows在注册表中查找,找出要加载的dll,如何加载它,然后加载dll并找到你要查找的类。如果你想跳过这个查找算法,那么你必须实现它,我认为这并不容易。但它确实有效。更新:寻找CoLoadLibrary函数,也许它毕竟不是那么难。我认为COM服务器在加载时会调用CoRegisterClassObject,这就是Windows找到它们的方式,而您调用CoGetClassObject。不过我还是一头雾水,所以请继续阅读MSDN。以上就是C#学习教程:CreateaCOMobjectfromafilewithoutregsvr32.如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表作品如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
