4

我们最近从 Windows XP 迁移到 Windows 7。我们发现 C# 应用程序的一部分尝试为 PDA 创建 dbf 文件失败,因为出现错误消息“'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地机器。”

我发现许多论坛都指向我将我的 exe 构建为 32 位,就像这里一样。

我的问题 1)在 64 位操作系统机器上访问 dbf 是否有任何其他驱动程序?(我知道有一个用于访问 excel 和访问 db)。dbf 有什么吗?

问题 2。与我的标题相同。我有一种感觉,通过转换为 32 位,我没有充分利用 64 位的优势。那么这种解决方法让我失去了什么?

提前致谢。

4

5 回答 5

2

在回答您的第二个问题时,除非您想在内存中存储大量数据,否则 64 位不会给您带来太多好处。大多数开发人员仍然以 x86(32 位)为目标,因为使用它的麻烦少了很多。也就是说,在某些情况下 64 位系统运行得更好,但正如我所说,这主要与您想要消耗的内存量有关。

于 2011-02-23T15:17:00.280 回答
2

在回答您的第一个问题时,尝试通过 MS 引擎使用 32 位软件访问数据库的 64 位计算机需要安装数据连接组件:

http://www.microsoft.com/downloads/en/details.aspx?familyid=7554f536-8c28-4598-9b72-ef94e038c891&displaylang=en

于 2011-02-23T15:19:59.513 回答
2

使用 x86,您可以节省内存并使其更易于使用 Edit-and-Continue。不利的一面是,您限制了地址空间。请参阅 1) 不制作 VS 64 位和 2) 为在 VS 32 位中创建的新应用程序设置默认值的一些理由:

1:http: //blogs.msdn.com/b/ricom/archive/2009/06/10/visual-studio-why-is-there-no-64-bit-version.aspx

2: http: //blogs.msdn.com/b/rmbyers/archive/2009/06/8/anycpu-exes-are-通常-more-trouble-then-they-re-worth.aspx

加:http: //blogs.msdn.com/b/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx

于 2011-02-23T15:23:34.413 回答
2

x64 进程可以访问更多指令和更多寄存器。通过针对 x86 vs Any CPU 进行编译,您放弃了 JIT 编译器使用这些指令和寄存器(以及更多内存)的能力,通常会导致(小的)性能损失。但实际上,一百分之九十九的用户都不会注意到。

他们会注意到,如果您为 Any CPU 编译程序,您的程序将无法运行,因为没有用于 dbf 文件的 64 位 OLE 驱动程序。这种格式已不再使用,因此得知 Microsoft 没有编写也没有计划构建 64 位版本,我不会感到惊讶。

于 2011-02-23T15:23:40.390 回答
1

我无法回答问题 1。但至于问题 2,答案可能是“视情况而定”。如果实施得当,繁重的数学运算(例如密码学)可以在 64 位系统中获得显着的速度提升。而且您将能够处理更多内存(但如果您不使用大量内存,这可能不是问题)。

在其他情况下,与将它们构建为 32 位应用程序相比,我实际上看到了 64 位应用程序的小幅减速(可能是由于与较大地址相关的一些开销)。

于 2011-02-23T15:23:46.737 回答