在 64 位操作系统计算机上以 32 位运行我的应用程序会带来什么影响

发布于 2024-10-18 13:13:25 字数 441 浏览 8 评论 0原文

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

我发现很多论坛都指示我将 exe 构建为 32 位,例如 在这里

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

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

提前致谢。

We recently moved from Windows XP to Windows 7. We found that one part of application in C# that try to create a dbf file for a PDA failed thorwing an error message
"The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

I found many forums pointing me to build my exe as 32 bit like here.

My Question No. 1) Is there any other driver for accessing dbf on a 64 bit OS machine? (I know there is one for accessing excel and access db). Anything there for dbf?

Question No 2. same as my Title. I have a feeling that by converting to 32 bit, I am not making use of the full advantage of a 64 bit. so What am I losing by this workaround?

Thanks in Advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

故人的歌 2024-10-25 13:13:25

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

他们会注意到,如果您为任何 CPU 编译您的程序,则该程序将无法工作,因为没有用于 dbf 文件的 64 位 OLE 驱动程序。这种格式不再被广泛使用,因此当我得知 Microsoft 尚未编写且没有计划构建 64 位版本时,我不会感到惊讶。

x64 processes have access to more instructions and more registers. By compiling for x86 vs Any CPU you give up the ability for the JIT compiler to use those instructions and registers (and more memory), typically resulting in a (small) performance penalty. But really, 99 times out of a hundred your users won't notice.

What they will notice is that your program doesn't work if you compile it for Any CPU because there is no 64bit OLE driver for dbf files. This format is not used as much any more, and so it wouldn't surprise me to learn that Microsoft has not written and has no plans to build the 64bit version.

忘东忘西忘不掉你 2024-10-25 13:13:25

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

In response to your second question, 64-bit doesn't get you that much unless you want to store huge amounts of data in memory. Most developers still target x86 (32-bit) because there's a lot less hassle with it. That said, there are cases when 64-bit systems operate better but, as I said, it's mainly to do with the amount of memory you want to consume.

柳若烟 2024-10-25 13:13:25

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

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

In response to your first question, a 64-bit machine attempting access on a database with 32-bit software through the MS engines needs to have the Data Connectivity Components installed:

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

转身以后 2024-10-25 13:13:25

使用 x86,您可以节省内存并更轻松地使用“编辑并继续”。不利的一面是你限制了你的地址空间。请参阅 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-usually-more-trouble-then-they-re-worth.aspx

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

With x86 you are saving memory and making it easier to use Edit-and-Continue. On the minus side you are limiting your address space. See some rationales for 1) not making VS 64-bit and 2) making the default for new apps created in VS 32-bit:

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-usually-more-trouble-then-they-re-worth.aspx

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

随梦而飞# 2024-10-25 13:13:25

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

在其他情况下,与将其构建为 32 位应用程序相比,我实际上发现 64 位应用程序的速度略有下降(可能是由于与较大地址相关的一些开销)。

I cannot answer question No 1. but as for No 2 the answer is probably "it depends". Heavy mathematical operations (e.g. cryptography) can get a significant speed boost in 64 bit systems if implemented properly. And also you'll be able to address more memory (but that is probably not an issue if you're not using massive amounts of memory).

In other cases I have actually seen small slowdowns for 64-bit applications compared to building them as 32-bit applications (probably due to some overhead related to larger addresses).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文