Articles of 32bit 64bit

在64位Linux上从32位模式切换到64位(长模式)

我的程序是在x86_64 CPU(64位操作系统,Ubuntu 8.04)上运行的32位模式。 是否可以暂时在用户模式下切换到64位模式(长时间模式)? 如果是这样,怎么样? 背景故事:我正在写一个链接到32位模式程序的库,所以它在启动时必须是32位模式。 但是,我想使用更快的x86_64入侵以获得更好的性能。 所以我想切换到64位模式做一些纯粹的计算(没有操作系统的交互;不需要64位寻址),返回到32位,然后返回给调用者。 我发现有一些相关但不同的问题。 例如, 在64位程序中运行32位代码 在32位操作系统中运行64位代码 我的问题是“在32位程序,64位操作系统中运行64位代码”

是否可以在Linux上设置一个gcc交叉编译器来在32位体系结构上编译64位目标?

我知道你可以通过使用-m32标志来编译64位Linux上的32位目标,但是也可以使用-m64标志在32位机器上编译为64位? 或者,您是否需要build立一个支持64位目标的交叉gcc工具链,这可能在32位机器上? 问候,约翰

如何使用mingw-w64编译和链接32位Windows可执行文件

我使用Ubuntu 13.04并使用apt-get install mingw-w64 。 我可以使用下面的命令编译并链接我的程序的一个可用的64位版本: x86_64-w64-mingw32-g++ code.cpp -o app.exe 其中生成一个64位的app.exe文件。 我用什么二进制或命令行标志来生成一个32位版本的app.exe?

android studio adb语法错误:“)”意外

今天早上当我开始做我的日常工作(在我的电脑中打开android studio 1.5.1 – lubuntu 32位)我尝试运行我的应用程序到我的设备后遇到错误。 这是android studio错误: Error running app: Unable to obtain debug bridge Unable to detect adb version, adb output: /root/Android/Sdk/platform-tools/adb: 1: /root/Android/Sdk/platform-tools/adb: Syntax error: ")" unexpected 我正在通过互联网寻找几个小时的可能解决scheme,但无法find同样的错误。 我已经尝试了一些其他的补救措施,但仍然没有解决它的运气。 你能帮助我吗? 提前致谢。

欧拉问题的性能问题和Int64types的recursion

目前我正在学习使用欧拉问题项目的Haskell作为我的操场。 我很惊讶我的Haskell程序竟然与其他语言编写的类似程序相比有多慢。 我想知道是否有什么东西,或者如果这是使用Haskell时期望的性能惩罚。 以下程序受到331问题的启发,但在发布之前我已经更改了,所以我不会为其他人破坏任何东西。 它计算在2 ^ 30 x 2 ^ 30网格上绘制的离散圆弧的弧长。 这是一个简单的尾部recursion实现,我确保跟踪弧长的累加variables的更新是严格的。 不过花了差不多一分半钟就完成了(用ghc编译-O标志)。 import Data.Int arcLength :: Int64->Int64 arcLength n = arcLength' 0 (n-1) 0 0 where arcLength' xy norm2 acc | x > y = acc | norm2 < 0 = arcLength' (x + 1) y (norm2 + 2*x +1) acc | norm2 > […]

我如何使用VBScript来确定我是否运行32位或64位Windows操作系统?

如何检测VBScript中的Windows操作系统的位(32位与64位)? 我试过这个方法,但是不行; 我猜(x86)是造成一些问题,检查该文件夹.. 还有其他的select吗? progFiles =“c:\ program files”&“(”&“x86”&“)” 设置fileSys = CreateObject(“Scripting.FileSystemObject”) 如果fileSys.FolderExists(progFiles)那么 WScript.Echo "Folder Exists" 万一

32位cmd.exe如何在Windows Server 2003 x64上启动64位cmd.exe?

这是Windows Server 2008 64位上的7-Zip执行权限的后续操作 。 我试图避免有一个过于复杂的构build过程,以制作多个7-Zip EXE文件。 我只需要一个.cmd来读取一些64位registry项后启动我的Java进程。 但是,要成功使用一个EXE文件,它需要是32位。 上面的问题find了让Windows Server 2008检测到32位cmd.exe并将其交换到64位的技巧。 有没有办法在Windows Server 2003上做到这一点? 有一个Windows修补程序,它允许reg.exe以32位模式访问64位条目,但我无法确定这是在客户的服务器上,因此解决方法是不可行的。

64位Windows API:C / C ++“DWORD”的大小是多less?

我只安装了32位Windows,所以我无法自己validation。 如果我理解正确,那么在Microsoft API的各个地方使用的DWORD是参考原来的16位字,而与当前的硬件架构无​​关? 因此,即使当我最终编译并链接我的应用程序以在64位Windows中运行时,似乎是32位的DWORD也将保持32位? 或者将DWORD变成128位宽?

是否有可能从32位应用程序读取64位进程的进程内存?

在Windows 64位,我有一个32位的进程,读取其他32位进程的内存,我希望它也能够读取64位进程。 ReadProcessMemory正被用来读取内存,但它有一个32位的限制。 有没有什么办法在64位进程的ReadProcessMemory相当于? 我知道我可以编写一个64位的进程,并启动从我的32位进程做的工作,但我想知道是否有其他的select,所以我不需要写一个64位的过程。 谢谢。

文件被复制到SysWOW64而不是System32

我的应用程序运行时必须将psTool实用程序复制到System32文件夹。 我在64位Windows 7上,每当我尝试通过File.Copy将exe复制到system32位文件夹时,exe总是被复制到SysWow64。 当我在destFile上放置一个断点时,path显示为C:\Windows\System32但文件不会进入(进入sysWow64)。 我已经尝试了Special Folder SystemX86 ,但文件再次进入sysWOW64。 string sourceFile = "C:\bin\Debug\somexe.exe" string destFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), utilityName); File.Copy(sourceFile, destFile, true); 任何build议我在这里失踪? 编辑 正如答案中所指出的那样,正在发生文件系统redirect。 我正在使用64位操作系统上的控制台应用程序的Visual Studio的默认设置开发应用程序。 我不确定在编译时必须保留哪些设置/开关,以便应用程序可以在32位和64位操作系统上运行。 基本上,它应该只是设置将文件复制到System32而不pipe它是什么位的操作系统。 在后面的程序中,我必须通过命令行访问psTools实用程序,如果将其放在SysWOW64中,命令行不可用。 如果我进行更改,要使用SysWOW64的32位cmd.exe,这将再次是64位平台特定的,我不想select。 任何解决scheme,可以使应用程序运行在32位和64位没有问题? 我是否必须修改代码(如何?)还是必须修改此控制台应用程序项目的某些属性(哪些属性)?