【发布时间】:2017-04-28 05:13:26
【问题描述】:
我们有一个由第三方创建的 .NET dll “A”。它通过 tlb 向我们的 VB6 exe 应用程序公开类。
我们还有自己的 .NET dll “B”,它引用 .NET dll “A”。 “B”还通过 tlb 向我们的 VB6 exe 应用程序公开类。
现在,VB6 应用程序在 VB6 代码中使用任一库中的类都没有问题,直到我们尝试在“B”中调用具有“A”参数类型的函数。在这种情况下,我们会收到错误 430 或错误提示 "unable to cast com object of type 'system.__comobject' to type 'Type.From.Dll.A'"
这可能是什么原因造成的?这正常吗?
【问题讨论】:
-
看来问题在于 dll A 是使用 2.0 目标框架创建的,而 dll B 是使用 4.5.1 创建的。不确定是否有一个好的解决方法。我们不想仅仅为了让它工作而返回到较低版本的 .NET。
标签: com vb6 com-interop