我有一个 x64 服务器,因为我的库被编译为 AnyCPU,所以在 x64 下运行。我们需要访问在 x86 下注册的 COM 组件。我对 COM 知之甚少,我的谷歌搜索无处可去。
问题:对于 COM 组件,我可以使用从 x64 返回到 x86 的符号注册表链接吗?我是否也需要在 x64 下注册 COM 组件?我可以(这里有任何声明......)吗?
谢谢。
最佳答案
如果组件正在运行 x64-native,则无法在进程内加载 32 位 COM 服务器,因为这是错误的进程类型。有几种可能的解决方案:
如果服务器需要自定义代理 stub 而不是使用普通的 oleaut32 代理 stub (尽管非常罕见),这可能不是一个选项,因为不会有 64 位版本的代理可用。只要能用普通的OLE编码,就可以register it for surrogate activation .
关于.net - 从 x64 .NET 访问 x86 COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359331/