我有一个编译为 x86 的 .NET Windows 窗体应用程序——它需要编译为 x86,因为它引用了 32 位的第 3 方 DLL。该应用程序使用 COM 互操作来自动化 Office 应用程序和 AutoCAD。我的问题是:对于 64 位版本的 Office 和 AutoCAD,我的 COM 互操作代码能否在 64 位操作系统上正常工作?我要试试这个,但我想知道是否有人知道任何问题?
问问题
1096 次
1 回答
1
如果 office 和 autocad 是纯 64 位的,那么可能不是因为它们将是 64 位图像,因此不会加载到 32 位进程中,并且您的 32 位进程会遇到相反的问题。
我们遇到了类似的情况,最终使我们的程序“anycpu”并提供了另一个 32 位的小程序来与 32 位 dll 对话,然后当我们检测(intptr.size = 4[32] or 8[64])
我们是否在 64 位机器上时,我们调用 32 位程序(执行与这些 3rd 方 dll 的通信)并生成某种输出(在我们的例子中,我们编写了一个小的 XML 文件)然后退出。我们等待程序退出,然后读取文件并对响应采取行动。
它实际上只是归结为程序的哪一侧具有最多的 64/32 和代码。
于 2010-04-08T06:40:38.393 回答