Windows 2008 64位操作系统和32位COM EXE';s

Windows 2008 64位操作系统和32位COM EXE';s,windows,oop,com,windows-server-2008,Windows,Oop,Com,Windows Server 2008,在64位操作系统上运行32位OOP COM exe时出现COM错误 加载类型库/DLL时出错。(来自HRESULT的异常:0x80029C4A(类型为E) 如果我有一个已编译的32位EXE,它读取GUID的注册表,我如何解决这个问题 David D这可能是注册问题。当为进程外服务器使用标准封送拆收器时,将使用类型库。它使用类型库中的信息来确定如何正确序列化函数调用的参数。在64位计算机上,需要在HKLM/Software/Wow6432Node/Classes/Typelib密钥中注册类型库。它

在64位操作系统上运行32位OOP COM exe时出现COM错误

加载类型库/DLL时出错。(来自HRESULT的异常:0x80029C4A(类型为E)

如果我有一个已编译的32位EXE,它读取GUID的注册表,我如何解决这个问题


David D

这可能是注册问题。当为进程外服务器使用标准封送拆收器时,将使用类型库。它使用类型库中的信息来确定如何正确序列化函数调用的参数。在64位计算机上,需要在HKLM/Software/Wow6432Node/Classes/Typelib密钥中注册类型库。它由接口注册表项中的TypeLib项引用,该注册表项是HKLM/Software/Wow6432Node/Classes/interface的子项


使用SysInternals的ProcMon实用程序来观察它的查找位置,请联系服务器的供应商或作者以获得安装程序支持。

这可能是注册问题。当为进程外服务器使用标准封送拆收器时,将使用类型库。它使用类型库中的信息来确定如何正确序列化函数调用的参数。在64位计算机上,需要在HKLM/Software/Wow6432Node/Classes/Typelib密钥中注册类型库。它由接口注册表项中的TypeLib项引用,该注册表项是HKLM/Software/Wow6432Node/Classes/interface的子项


使用SysInternals的ProcMon实用程序观察它的查找位置,请与服务器的供应商或作者联系以获得安装程序支持。

找到了答案。。。我使用的.NET解决方案被设置为“任意CPU”。一旦我把它改成x86。。。这就解决了问题。

找到了答案。。。我使用的.NET解决方案被设置为“任意CPU”。一旦我把它改成x86。。。这就解决了问题。

这32位程序是COM服务器还是消费者?这32位程序是COM服务器还是消费者?是的……我们是软件供应商。只是没想到我们需要重写这个过程才能在64位操作系统上运行它。根本没有解决办法?一些第三方的东西,拦截和重定向?什么解决办法?首先找到问题的根源,然后你就会知道如何解决它。使用Regedit.exe和ProcMon.ok那么tlb是如何注册的呢?当我尝试regtlibv12.exe时。。。。没有做任何事情这是COM组件安装程序的工作。或其DllRegisterServer入口点,视情况而定。好的。。。当我运行procomon时。。。一切似乎都在关注WOW6432节点。。但是这个GUID的注册表项似乎在那里,而另一个也在那里。是的,我们是软件供应商。只是没想到我们需要重写这个过程才能在64位操作系统上运行它。根本没有解决办法?一些第三方的东西,拦截和重定向?什么解决办法?首先找到问题的根源,然后你就会知道如何解决它。使用Regedit.exe和ProcMon.ok那么tlb是如何注册的呢?当我尝试regtlibv12.exe时。。。。没有做任何事情这是COM组件安装程序的工作。或其DllRegisterServer入口点,视情况而定。好的。。。当我运行procomon时。。。一切似乎都在关注WOW6432节点。。但是这个GUID的注册表项似乎在那里,也在另一个GUID中。