我有一些 dll 和 exe 文件。我注册了这些文件并创建了所需的实例。在一种情况下,没有创建实例。任何其他 dll 和 exe 都会导致成功的结果,只有这个是一个问题。当我上次注册有问题的文件时,没有创建实例,但是如果未注册有问题的文件,我尝试注册一个给我成功结果的文件,但同样没有创建实例。代码没有改变,相同的代码不再创建实例,这对我来说似乎很奇怪,因为相同的代码可以在注册有问题的文件之前创建实例。我尝试用相同的结果替换CoGetClassObject的CoCreateInstance 。错误是Server execution failed。
我使用 Visual Studio 2010 和CLSCTX_LOCAL_SERVER标志。
我的假设是这种奇怪的行为是由 64 位环境和 32 位 COM 对象引起的。我尝试了这个解决方法,但结果是相同的Server execution failed。有任何想法吗?
编辑:我搜索了一个用于 COM 对象的接口 IID,但在注册表中不是这个 IID。这是这种情况的可能线索吗?