COM在32位和64位应用程序之间进行Interop

时间:2010-04-08 05:28:32

标签: .net winforms ms-office com-interop autocad

我有一个编译为x86的.NET Windows窗体应用程序 - 它需要编译为x86,因为它引用了32位的第三方DLL。该应用程序使用COM interop自动化Office应用程序和AutoCAD。我的问题是:对于64位版本的Office和AutoCAD,我的COM互操作代码是否可以在64位操作系统上正常工作?我打算尝试一下,但我想知道是否有人知道有任何问题?

1 个答案:

答案 0 :(得分:1)

如果办公室和autocad纯粹是64位,那么可能不是因为它们将是64位图像,因此不会加载到32位进程中,而你的32位处理器则存在相反的问题。

我们有类似的情况,并最终使我们的程序“anycpu”,并提供了另一个32位与32位dll交谈的小程序然后当我们检测到(intptr.size = 4[32] or 8[64])如果我们在64位机器上,那么我们调用32位程序(执行与这些第三方dll的通信)并生成某种输出(在我们的例子中,我们编写了一个小的XML文件),然后退出。我们等待程序退出然后读取文件并对响应采取行动。

这真的只取决于程序的哪一方拥有最多的64/32和代码。