如果你的OFFICE 是64Bit的,你就别想运行起来。

解决方案 »

  1.   

    唉,我反复测试,也得出你说的结论,所以我上网找了一个32位便携版OFFICE2007 SP2,给那些64位的同事,作为过渡方案。
      

  2.   

    然而,这只是过渡方案,请问谁知道用什么软件、什么方法可以编制32位和64位OFFICE都通用的DLL文件?
      

  3.   

    在64位Windows下:
    64位dll在目录c:\windows\system32目录下;
    32位dll在目录c:\windows\syswow64目录下;
      

  4.   


    这个我知道,目前的真正的问不是WIN7是32位还是64位,SYSTEM32还是SYSWOW64的问题,真正的问题是VB6封装出来的DLL只能在32位OFFICE下运行,有没有什么别的软件或方法,可以封出同时适用32位和64位OFFICE使用的DLL文件????
      

  5.   

    使用VB7支持64位的OFFICE2010,修改一些函数申明和变量,请参考:64位VBA概览
    让你的VBA宏兼容64位系统
      

  6.   

    64位进程无法加载32位DLL
    反之亦然,只有一个特例就是32位进程可以加载ntdll.dll
      

  7.   

    正常情况下,32位dll应该是可以在64位机器上运行的,之所以不能运行,可能是你的某些操作在64位机器上不兼容。所以我觉得这个问题是不是可以这样解决。先用一个32位dll作为入口,在这个dll中判断系统的位数,如果是32位则加载对应的32位dll,如果是64位,则加载64位的dll。
      

  8.   

    不是我说反了,而是微软弄反了!

    syswow64 ==system Windows 32-bits on Windows 64-bit,
    依然用system32是为了保持程序迁移的兼容性。system32出现时16位都非常流行。根本没考虑到64位会这么快普及。
      

  9.   

    vb6.0时,还没有 64位的 windows 。
      

  10.   

    office不建议用64位的。64位的office比32位的目前来看没有任何优势
      

  11.   


    ActiveX DLL 改成 ActiveX EXE 试试。
      

  12.   

    这个问题似乎应该反过来问:在 64 位系统下如果支持 32 位的 ActiveX DLL?
      

  13.   

    c:\windows\syswow64\regsvr32 c:\windows\syswow64\xxxxxxx.ocx
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\xxxxxxx.dll
      

  14.   

    我记得当时也和楼主一样,满以为能兼容。
    可是很遗憾,64位office是不能运行32位COM组件的,就目前来说是不行,至于以后就不清楚了。
    vb6开发的COM组件是32位的,所以根本不能调用。
    至于为什么,这里有一篇介绍,
    http://www.cnbeta.com/articles/106641.htm所以,目前我知道的唯一办法,就是使用VB2010开发ADD-IN外接程序,或者开发一个VSTO程序。
      

  15.   

    我就觉得office兼容问题是个无底洞,我估计楼主想兼容所有版本几乎不可能。
      

  16.   


    这个我知道,目前的真正的问不是WIN7是32位还是64位,SYSTEM32还是SYSWOW64的问题,真正的问题是VB6封装出来的DLL只能在32位OFFICE下运行,有没有什么别的软件或方法,可以封出同时适用32位和64位OFFICE使用的DLL文件????
    我强烈推荐ADD-IN EXPRESS
      

  17.   

    非常感谢上面所有老师的回复,我最后的确没有找出办法,只好“强迫”所有同事安装32位OFFICE,将VB6封装出来DLL文件放在各自电脑中SYSTEM32(32位系统)或SYSWOW64(64系统)文件夹下,从而使大家都能运行我写的小程序。
      

  18.   

    这种事我以前调试时发现了一个原因:是因为某些ocx,或dll等文件引用的路径不对,所以造成程序在64位系统下无法运行。
      

  19.   

    是不是可以考虑用VB.net或更高版本,编译2个动态库?