32位和64位应用程序之间的COM互操作

32位和64位应用程序之间的COM互操作

问题描述:

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

如果办公室和autocad纯粹是64位,那么可能不是因为它们将是64位图像,因此不会加载到32位进程中,并且对于32位进程有相反的问题。

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

它真的只是归结到程序的哪一方最多64/32和代码根据。