Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从XP到Win 7:无法将COM对象强制转换为接口类型。由于“错误”而失败;不支持此类接口”;_Com - Fatal编程技术网

从XP到Win 7:无法将COM对象强制转换为接口类型。由于“错误”而失败;不支持此类接口”;

从XP到Win 7:无法将COM对象强制转换为接口类型。由于“错误”而失败;不支持此类接口”;,com,Com,注意:我对Windows开发非常非常陌生 我刚刚将VisualStudio.NET2003解决方案转换为VS2005(我们迈向VS2012的第一步)。转换后的VS 2005解决方案在其原始32位XP环境中运行良好,但在64位Windows 7中出现“不支持此类接口”错误时失败 Error 13: Unable to cast COM object of type 'Reflection.Session' to interface type 'Reflection.DApplication'.

注意:我对Windows开发非常非常陌生

我刚刚将VisualStudio.NET2003解决方案转换为VS2005(我们迈向VS2012的第一步)。转换后的VS 2005解决方案在其原始32位XP环境中运行良好,但在64位Windows 7中出现“不支持此类接口”错误时失败

Error 13: Unable to cast COM object of type 'Reflection.Session' to interface type 
'Reflection.DApplication'. This operation failed because the QueryInterface call
on the COM component for the interface with IID '...' failed due to the following 
error: No such interface support (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))
XP和Win7都使用相同的代码、相同的第三方DLL和相同的框架(根据下面的CorsFlag结果,似乎XP和Win7都使用.Net 1.1框架)。在Win7而不是XP中,还有什么可能触发此错误

如果有帮助,“Reflection.Session”和“Reflection.DApplication”是IBMReflection 9终端仿真软件的一部分。终端仿真器本身在Win7中运行良好,但是我们在代码中使用的API在Win7环境中使用时出现上述错误


通过查看其他StackOverflow答案,我尝试了以下方法:

  • 查看可执行文件和Interop.Reflection.DLL的CorsFlags结果,我得到了相同的响应:

    Version    : v1.1.4322
    CLR Header : 2.0
    PE         : PE32
    CorFlags   : 0x1
    ILONLY     : 1
    32BITREQ   : 0
    32BITPREF  : 0
    Signed     : 0
    
    我可能错了,但我认为这表明这不是32位vs 64位的问题。我不能100%确定32位对64位是否会触发此错误


  • 已安装“远程服务器管理工具”并启用“远程桌面服务工具”。重新启动并再次测试后,仍然没有运气。

    这是一个非常直接的问题,要么IBM在10年后更改了其产品,这并不奇怪,要么其安装程序没有正确注册代理。如果SysInternals的Process Monitor没有帮助(比较好和坏),请与IBM联系以获得支持。他们已经发布了较新的版本,但这与XP和Win7上的IBM Reflection版本相同。我将尝试重新安装以修复代理注册,并研究您提到的系统内部思想。感谢您的想法。理想情况下,我不想升级到他们的新产品,因为我们不需要这些功能,而且API已经发生了重大变化。