zoukankan      html  css  js  c++  java
  • 在64位机器上无法调用迅雷的问题 Kevin

    问题定位:源代码是在32位的win8上编译的,在32位的XP 和win 7下运行调用迅雷没问题,但有用户表示在64位的机器上无法正常调用迅雷。

    经查,在64位的机器上的确无法调用迅雷,日志文件显示,要调用的com组件没有注册。但测试的win2008上的迅雷是正常的,排除迅雷的问题。

    StackOverFlow网站上的一个问题提醒了我,64的平台可能跟32位的com接口不匹配!(http://stackoverflow.com/questions/14141616/regsvr32-file-was-loaded-but-the-entry-point-dllregisterserver

    后又查资料得知,VS默认的编译平台是AnyCpu,意思是编译出来的程序包含两套运行逻辑。例如,我机子是32位的,如果以AnyCpu的方式编译,编译出的程序如果运行在32位的windows上则是以32位的方式运行,但如果你是64位的机器,那么就会以64位的方式运行。(http://www.cnblogs.com/tingfeng/articles/1943646.html

    这样的逻辑似乎没有什么问题,但问题是在我的程序中默认调用的是32位的迅雷Com组件,也就是说,在64位的机器上,我是以64位的方式调用32位的Com组件,这就是问题的根源。

    了解了问题的根源,解决方案就很简单的了,将VS的目标编译平台改为x86,也就是说即使在64位的机器上仍然以32位的方式运行。

    问题解决。

    PS:虽然问题解决了,但是我在尝试在32位的机器上并不能不能添加64位的com组件引用,这是不是说无法在32位的机器上调用64位com组件,生成64位的应用程序了呢?

  • 相关阅读:
    05-----数据类型转换
    04-----赋值运算符
    03-----数据类型
    02-----第一个JavaScript代码
    Fxx and game
    Bomb
    Stammering Aliens
    DISUBSTR
    Life Forms
    后缀数组二·重复旋律2
  • 原文地址:https://www.cnblogs.com/kfx2007/p/3015428.html
Copyright © 2011-2022 走看看