0

目前我有一个用 C# 编写的应用程序。在内部,我正在使用另一个 3rd 方 dll,它也是用 C# 编写并在 32 位 Windows 中编译的。第 3 方 dll 将在 64 位窗口中发布,最终我必须使用这个新的 dll。但我现在不想迁移到 64 位操作系统。

我的问题:这个新的 dll 会影响我现有的代码吗?如果是,那么我需要如何以及进行哪些更改以适应此功能。

4

2 回答 2

3

我很确定您不能在 32 位 Windows 中使用 64 位 DLL。

您可以使用诸如 thunking 之的技巧或 WoW64 之类的 32 位子系统之类的技巧,但您在 32 位版本中没有对 64 位代码的所有支持。

希望您的第三方将继续提供其 DLL 的 32 位版本,这样您就不必担心了。如果没有,并且您想升级,您也需要使用 64 位。

于 2013-02-11T12:42:14.887 回答
2

如果第三方库是 C# 库,则应编译为 AnyCPU。(请与作者确认。)

如果它编译为 AnyCPU,那么如果你从 32 位程序中使用它,它将作为 32 位运行,如果你从 64 位程序中使用它,它将作为 64 位运行。

否则,您将需要更改自己的程序以匹配 DLL。但是,如果他们没有将其设置为 AnyCPU,我会向他们抱怨......或者找出他们的动机是什么(可能是使用非托管 DLL)。

于 2013-02-11T12:54:13.527 回答