草庐IT

windows - 如何确定我的应用程序是在 x86 还是 x64 Windows 上运行?

我想知道,在运行时,我是在32位还是64位Windows上运行。OSVERSIONINFOEX结构告诉我主要版本和次要版本,但我猜我需要内部版本号。有人知道它们是什么吗? 最佳答案 如果您的应用程序是为64位编译的,那么答案很简单:您在64位Windows上运行。如果您的应用程序是为32位编译的,您需要调用IsWow64Process.此功能仅在WindowsXP或更高版本上导出;如果您想支持早期版本的Windows,则需要使用GetProcAddress来获取指向此函数的指针。 关于w

linux - Kip Irvine - X86 处理器的汇编语言 - 与 Linux 的相关性如何?

KipIrvine的书有多相关AssemblyLanguageforx86Processors是针对Linux操作系统?换句话说,这是一本关于x86的书,与在Linux上学习x86真的有很大区别吗?无论如何,操作系统肯定只是ASM之上的抽象层?我在想是否要买这本书,但我对以​​Linux为中心的编程更感兴趣。 最佳答案 根据我在Amazon上收集到的评论,这是一本非常适合Windows的书。关于您的问题“操作系统肯定只是ASM之上的抽象层吗?”-实际情况并非如此。汇编语言编程就像用任何其他语言编程一样——如果您想做任何有用的事情,就

python - 如何从 32 位 Python 访问 64 位 Windows 环境变量?

是否有一些相当简单的方法从32位Python读取64位Windows环境变量?例如默认值为os.environ['ProgramFiles']在32位环境中是r'C:\ProgramFiles'(这就是os.environ在32位Python中报告的内容),但在64位环境中是r'C:\ProgramFiles(x86)'环境。我想从32位Python获取64位版本的变量。怎么办?=================================================================问题的这一部分是对那些迫不及待想说“你为什么要这样做?”或“这不是这样做是个好主

c# - 在 64 位计算机上以 32 位运行 C# 应用程序

如何强制我的应用程序在64位计算机上以32位运行?代码是用C#写的。 最佳答案 右键单击您的项目,然后选择属性。在属性中,选择构建选项卡。在平台目标下,选择x86。按Ctrl+Shift+S保存所有文件,右键单击解决方案并选择“清理”以清除旧的二进制文件.之后的任何构建都应该是32位 关于c#-在64位计算机上以32位运行C#应用程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

c# - 找不到部分路径 'C:\Program Files (x86)\IIS Express\~\TextFiles\ActiveUsers.txt'

我尝试了多种方法从名为TextFiles的文件夹访问我的VisualStudio2012解决方案中的文本文件using(System.IO.StreamWriterfile=newSystem.IO.StreamWriter(@"~/TextFiles/ActiveUsers.txt",true)){file.WriteLine(model.UserName.ToString());}但是一直报错Couldnotfindapartofthepath'C:\ProgramFiles(x86)\IISExpress\~\TextFiles\ActiveUsers.txt'.不知道哪里错了

C# 读取注册表 : ProductID returns null in x86 targeted app. "Any CPU"工作正常

我最近搬到了一台装有VS2010的W764位机器上。我的项目设置为在AnyCPU上运行。当我将其更改为针对x86时,我注意到我的某些注册表调用不再有效。我正在尝试像这样读取ProductID字段:RegistryKeywindowsNTKey=Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\WindowsNT\CurrentVersion");objectproductID=windowsNTKey.GetValue("ProductId");productID在x86模式下运行时始终为null,在“任何CPU”下运行时它可以

c# - 在 Visual C# 2008 Express Edition 中设置 32 位 x86 构建目标?

我正在构建一个加载32位COMdll的C#应用程序。编译后的应用程序在32位Windows上运行良好,但在64位Windows上运行失败,因为它无法加载32位COM。有没有办法在VC#2008ExpressEdition中设置32位构建目标?或者,是否有办法强制编译为AnyCPU构建目标的.NET应用程序在64位Windows上以32位模式运行? 最佳答案 为了后代,这里是adrian链接到的论坛帖子:InVC#Express,thispropertyismissing,butyoucanstillcreateanx86config

c# - 在 64 位整数中查找最高和最低有效位集的快速方法

在StackOverflow上有很多关于这个的问题。很多。但是我找不到这样的答案:使用C#适用于64位整数(相对于32位)快于:privatestaticintObvious(ulongv){intr=0;while((v>>=1)!=0){r++;}returnr;}甚至intr=(int)(Math.Log(v,2));我在这里假设64位IntelCPU。一个有用的引用是BitHackspage另一个是fxtbook.pdf然而,虽然这些提供了解决问题的有用方向,但它们并没有给出现成的答案。我正在寻找一个可重复使用的函数,它可以执行类似于_BitScanForward64的操作和_

c# - 在 x86 上处理非常大的列表

我需要处理大量的float列表,但我在x86系统上遇到了内存限制。我不知道最终长度,所以我需要使用可扩展的类型。在x64系统上,我可以使用.我当前的数据类型:Listparam1=newList();Listparam2=newList();Listparam3=newList();publicclassRawData{publicstringname;publicListdata;}paramN列表的长度很低(目前为50或更低),但数据可以超过10m。当长度为50时,我在1m数据点上方达到内存限制(OutOfMemoryException),而当长度为25时,我在2m数据点上方达到内

交叉编译 - X86的TCPDUMP

我需要tcpdump二进制android-x86。这是我所做的:sudoapt-getinstallgcc-i686-linux-androidsudoapt-getinstallbyaccsudoapt-getinstallflexwgethttp://www.tcpdump.org/release/tcpdump-4.9.0.tar.gzwgethttp://www.tcpdump.org/release/libpcap-1.8.1.tar.gztarzxvftcpdump-4.9.0.tar.gztarzxvflibpcap-1.8.1.tar.gzcdlibpcap-1.8.1expo