在使用 .Net 应用程序(假设是 Asp.Net 应用程序)时,与在 32 位平台上工作相比,在 64 位平台上工作时做事的方式有什么不同。
我想的很少,因为您正在研究框架,而框架正在为您处理大部分事情,对吗?
但是,请发表您的意见。
谢谢。
如果您使用 p/invoke,那么您需要确保您有 64 位版本的 DLL 可用。如果您调用 MS 提供的 DLL,例如 kernel32,这不是问题,因为它们在 32 位和 64 位平台上具有相同的名称(我知道这很奇怪),因此您的 64 位应用程序将隐式链接到正确的版本。但是,如果您使用 3rd 方 DLL 并且您的 64 位应用程序尝试链接到 32 位 DLL,您将获得运行时异常。
这也意味着如果您使用的是进程内 COM 对象,您将遇到问题。当您跨越进程边界时,64 位应用程序可以调用 32 位的进程外 COM 对象(反之亦然),COM 将为您处理编组。
除此之外,该框架会为您处理大多数事情。您永远不必担心指针大小,并且 clr 类型具有明确的大小(int 始终为 32 位,long 始终为 64 位)。在纯粹的 .NET 世界中,几乎没有什么可担心的。当您开始在沙盒之外移动时,您必须更加小心。
在两种情况下考虑 64 位可能会很有趣: