问题标签 [32-bit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1831 浏览

c - 如何在 32 位计算机上用 VS 2005 交叉编译 64 位 DLL?

使用 Visual Studio 2005,我用 C 语言编写了一个简单的 DLL,它使用 Windows API 发送 UDP 数据报,并与第三方程序挂钩。在 64 位机器上,它根本不起作用,因为在这种情况下第三方代码是为 64 位编译的。所以我需要发布同一个 DLL 的两个版本——一个用于 32 位,一个用于 64 位。

但是,我没有设法让 Visual Studio(在 32 位机器上运行)吐出与 32 位版本不同的 DLL - 似乎项目属性中的“机器”设置被忽略了。一位同事告诉我,VS 2008 在这种情况下根本拒绝交叉编译。这真的完全不可能吗?

0 投票
11 回答
1256 浏览

java - 是否必须了解机器架构才能编写代码?

假设我正在为一个简单的问题使用 Java、Python 或 C++ 编程,可能是构建 TCP/UDP 回显服务器或阶乘计算。我是否需要关心架构细节,即它是 32 位还是 64 位?

恕我直言,除非我正在编写与相当低级的东西有关的东西,否则我不必担心它是 32 位还是 64 位。我哪里错了?还是我说的对???

0 投票
6 回答
3538 浏览

c - 这个位排序代码中的位操作是如何工作的?

Jon Bentley 在他的书 Programming Pearls 的第 1 列中介绍了一种使用位向量对非零正整数序列进行排序的技术。

我从这里获取了程序 bitsort.c并将其粘贴在下面:

我了解 clr、set 和 test 的功能并在下面解释它们:(如果我在这里错了,请纠正我)。

  • clr 清除第 i 位
  • set 设置第 i 位
  • 测试返回第 i 位的值

现在,我不明白这些功能是如何做的。我无法弄清楚这三个函数中发生的所有位操作。

0 投票
5 回答
17112 浏览

memory - 32 位 Intel 处理器上的内存对齐

Intel 的 32 位处理器(例如 Pentium)具有 64 位宽的数据总线,因此每次访问获取 8 个字节。基于此,我假设这些处理器在地址总线上发出的物理地址始终是 8 的倍数。

首先,这个结论正确吗?

其次,如果它是正确的,那么应该在 8 字节边界上对齐数据结构成员。但是我看到人们在这些处理器上使用 4 字节对齐。

他们怎么能有理由这样做呢?

0 投票
3 回答
453 浏览

java - 32 位进程在 64 位系统上运行时是否需要更多内存?

我有一个相当消耗内存的 java 应用程序。在我的带有 Windows XP Professional 的 32 位系统上,如果我提供它,该应用程序将运行良好-Xmx1280m。下面的一切都会以java.lang.OutOfMemoryError: Java heap space异常告终。

如果我在 64 位 Windows XP Professional 上运行相同的应用程序(其他一切都完全相同),它需要-Xms1400m防止 OutOfMemory 条件。

据我了解,如果我有一个 C 程序并将其编译为 32 位和 64 位,则 64 位版本将需要更多内存,因为指针更宽等等。然而,在我的 java 示例中,虚拟机(Sun)是相同的,字节码是相同的。

为什么在 64 位机器上需要更多内存?

0 投票
3 回答
9123 浏览

c# - .net 控制台应用程序 32 与 64 位

.NET 中的应用程序是否需要以 64 位构建才能充分利用具有 64 位操作系统的机器,或者它是否会像 32 位构建一样利用它。基本上,我们遇到了内存不足异常的问题,建议在 64 位机器上运行控制台应用程序,这“可能”解决了这个问题。问题是我们是否可以直接启动一个 64 位框并将当前应用程序放在上面,或者我是否需要以 64 位方式重建应用程序。

0 投票
8 回答
64337 浏览

.net - 如何强制 MSBuild 编译为 32 位模式?

我正在使用 MSBuild(通过NAnt)来编译一堆VB.NET程序集。因为这些程序集依赖于 COM 互操作,所以我需要保证它们在 64 位操作系统上以 32 位模式运行。我可以通过更改 Visual Studio 中的项目来将可执行程序集编译为 32 位,但我真的希望能够在构建服务器上强制将所有可执行文件编译为 32 位模式。

我已经尝试了一些 MSBuild 的命令行参数,但没有成功:

  • /p:平台=win32
  • /p:平台=x86
  • /p:处理器架构=x86

我究竟做错了什么?MSBuild 在编译 VB 项目时使用的属性是否有一些参考?

0 投票
3 回答
3164 浏览

python - 使用 win32inet.WinHttpGetProxyForUrl 的正确方法是什么

我正在尝试使用已由 Win32com 的开发人员公开的 Microsoft WinHttp 库的功能。不幸的是,大多数库似乎都没有记录,也没有通过 win32com 库使用 win32inet 功能的正确方法的示例。

这是我到目前为止所拥有的:

如您所见,我所要做的就是使用 win32inet 功能找出哪个代理适合用于给定 URL,例如 foo.com。

你能帮我纠正最后一行的语法吗?MSN为被包装的函数提供了一些很好的文档,但 args 似乎并没有完美地映射到 python 库的那些。

此脚本的固定版本应:

  • 能够查找用于任何给定 URL 的代理。

  • 它应该总是做 Internet Explorer 会做的事情(即使用相同的代理)

  • 它应该在任何有效的 Windows XP 设置上都有效。这意味着它应该与明确配置的代理一起使用,并且根本没有代理。

  • 它只需要在带有 Python 2.4.4 的 Windows XP 32bit 上工作。它可以使用任何官方发布的win32com版本。

我在 Windows XP 上使用 Python2.4.4 和 Win32Com。

更新0:

或者......你能给我一个 cTypes 的替代实现吗?只要我能成功,我就很高兴!

0 投票
2 回答
1202 浏览

assembly - 64位汇编的32位指令

我开始将一个用 C 语言编写的程序移植到 64 位机器上,并用汇编语言编写了几段代码,其中包含用于 32 位机器(如ljmp)的指令。

是否有地方/文档有汇编指令,用于 32 位机器和对应的 64 位机器?如果没有,我在哪里可以找到列出 32 位和 64 位机器的所有指令的文档?


很明显,我是这种情况的新手。让我们澄清一些观点。

我在早期移植操作系统。它是在考虑 x86 机器的情况下编写的。现在,我希望它在 x86_64 上运行。

它是在考虑了 UNIX 的 Linux 机器中编写的。我几乎可以肯定原作者是在英特尔机器上编写的。我也在英特尔,但我也想在 AMD 上运行操作系统。

使用的编译器是 gcc。

0 投票
3 回答
892 浏览

.net - 32 位或 64 位系统中的 .NET 有什么区别?

想象一个不使用 COM 组件或 PInvoke 的纯 .NET 应用程序。目标系统是 32 位还是 64 位是否重要?