简短的2个问题,在阅读几个主题/页面后我找不到明确的答案。如何处理32位和64位环境之间的Interops?
如果我复制了一些互操作的dll到我的电脑,它的建立到AnyCpu(使用.NET反射检查),如果我要引用到它的应用程序构建64位(现在我得到一个例外) - 注册为64位就够了(有regasm) - 或者我们不注册interops - 只有COM的?
如果我有互操作DLL - 我可以得到原来的COM为其创建了互操作(这对于创建另一个互操作,例如对于64位环境很有用)?
编辑:@大卫响应后,我检查了多一个选择,意想不到的是工作,但现在我不知道是什么意思了讨论和解决方案。任何人都可以帮助解决这个问题吗?
我做什么: 我跟着从here说明,现在从COM对象不与我的64位应用程序的工作!对所有对象手动执行此操作可能会非常棘手(其中有数百个对象) - 处理Interop的正确方法是什么?
问候, jotbek
当您在.NET中创建一个要从COM应用程序使用的库时,会使用'regasm',而不是在.NET中要使用COM库时使用'regasm'。 – prprcupofcoffee
@大卫:谢谢我不知道。 – jotbek
虽然使用[DllSurrogate](http://msdn.microsoft.com/en-us/library/windows/desktop/ms691260(v = vs.85).aspx)确实解决了Bitness问题,但它的预期用途似乎隔离 - 保持COM DLL中的任何问题不影响主程序。 – prprcupofcoffee