问题描述
我已经创建了一个用于测试目的的虚拟应用程序,它是一个64位控制台应用程序,它创建了32位COM应用程序的实例。这是一个名为Laserforms的第三方应用程序。
static void Main(string[] args)
{
LFM32.Application application;
try
{
application = new LFM32.Application();
Console.WriteLine("Success!");
application.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Console.Read();
}
}
现在,这在我的计算机上可以正常工作,但是当我将其部署到也安装了Laserform的另一台计算机上时,我会收到以下错误消息。
{system.invalidCastException:无法将类型为“ System .__ ComObject”的COM对象转换为接口类型为“ LFM32.Application”。 该操作失败,因为对具有IID'{6688DD46-3DA3-4FEC-8A1F-54E1453DCC77}'的接口的COM组件上的QueryInterface调用 由于以下错误而失败:加载类型库/ DLL时出错。 (来自HRESULT的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。}
我已经通过了两者的注册表,看不到任何区别,还有什么我做错了?
更新:
因此,我在.tlb文件上运行TlbImp以创建一个我可以在.NET应用程序中引用的DLL。这创建了几个额外的DLL,以及有关IunkNown和一些无效类型的一些警告。然后,我在它和它创建的其他DLL上运行了Regasm(来自Framework和Framework64),但是我仍然看到完全相同的错误。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)