小编Dan*_*nny的帖子

如何在Windows Server 2008上使用32位COM对象(适用于2008 R2但非2008)

我使用默认的DllSurrogate来启用64位的32位COM对象的自动化.这在Windows7 64位和Windows Server 2008 R2中完美运行.然而; 常规风格Windows Server 2008(R2之前版本)完全忽略注册表中的DllSurrogate条目.我已经研究了几天,发现经典的Windows Server 2008具有注册表反射的文档,如果它的空白则忽略DllSurrogate值.(我将注册表字符串的值留空以使用默认的Surrogate.)要解决此问题(未在32位和64位注册表之间复制),我运行regedit.exe*32并设置密钥.然后我打开正常的regedit并设置密钥.仍然没有运气.我也尝试将DllSurrogate注册表值设置为c:\ windows\syswow64\dllhost.exe,以便该值不是空白但不是' 完全工作(在任何操作系统上).我收到的错误是"无法创建activex对象".

我在2台不同的Windows Server 2008(Pre R2)机器上重现了这个问题.我还验证了从32位应用程序启动时,COM对象可以在这些机器上使用.我使用LINQPad 32位和64位进行测试.LINQPad作为32位运行可以创建COM对象.64位LINQPad不行.

[链接文字] [1] < - 我正在使用的解决方案(适用于R2)http://msdn.microsoft.com/en-us/library/aa384253 (VS.85 ) .aspx < - DllSurrogate注册表的文档条目未反映在Windows Server 2008上,但我不知道如何规避此限制.我尝试使用regedit.exe*32直接编辑32位注册表.

我在这里缺少什么想法?是否有一些特殊的技巧在R2之前使用默认的DllSurrogate(dllhost.exe)?目前不能将我们的COM重写为.NET.我希望我错过了一些东西,因为它可以在最新的Windows Server 2008 R2上运行.

谢谢参观!丹尼

com windows-server-2008

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

com ×1

windows-server-2008 ×1