标签: 64-bit

从用户代理或Javascript检测64位或32位Windows?

我想提供正确的下载版本.我的版本是:

  • 32位Windows
  • 64位Windows
  • Linux的

使用User Agent字段检测Linux很容易; 但是有可能可靠地判断Windows是32位还是64位?

用户可能正在使用奇怪的浏览器 - IE和Firefox很常见,我们可能在某处有Opera用户; 也许是Chrome用户.我知道64位Windows 7附带32位和64位版本的IE,我想将它们发送到我下载的64位版本.

(编辑补充:我知道我应该提供所有选项,我会.但是人们不会阅读选项.所以我希望默认提供正确的下载,以提高可用性.当然,虽然这很有帮助如果我做对了,如果我弄错的话,这是非常无益的.从目前为止的答案来看,这看起来并不是一种可行的方法.

javascript 64-bit user-agent operating-system

77
推荐指数
7
解决办法
6万
查看次数

JavaScript支持64位整数吗?

我有以下代码:

var str = "0x4000000000000000";   //4611686018427387904 decimal
var val = parseInt(str);
alert(val);
Run Code Online (Sandbox Code Playgroud)

我得到这个值:" 4611686018427388000",这是0x4000000000000060

我想知道JavaScript是否错误处理64位整数还是我做错了什么?

javascript 64-bit integer numbers

76
推荐指数
3
解决办法
5万
查看次数

C#编译32/64位,还是任何cpu?

可能重复:
Visual Studio"任何CPU"目标

我注意到在VS中编译C#代码时,通常有编译32/64位系统的选项,还有一个用于编译任何cpu的选项.

这两个选项有什么区别?选择任何CPU只能编译为中间字节代码,而第一个选项编译为机器代码(这听起来不太可能)?或者是其他东西?

.net 64-bit assemblies 32bit-64bit anycpu

68
推荐指数
2
解决办法
6万
查看次数

一个简单的"Hello World"在64位机器上需要10G虚拟内存而在32位机器上需要1G?

在我们的生产机器上运行一个简单的Java程序,我注意到这个程序占用了更多的10G virt.我知道虚拟内存不是那么相关,但至少我想了解为什么需要它.

public class Main {
  public static void main(String[] args) {
        System.out.println("Hello World!");
        try {
                Thread.sleep(10000);
        } catch(InterruptedException e) {
                /* ignored */
        }
  }
}
Run Code Online (Sandbox Code Playgroud)

top当我运行那个小程序时,这是什么意思:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18764 myuser    20   0 10.2g  20m 8128 S  1.7  0.1   0:00.05 java
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?

uname -a说:

Linux m4fxhpsrm1dg 2.6.32-358.18.1.el6.x86_64 #1 SMP Fri Aug 2 17:04:38 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

在较旧的32bit-linux机器上,同一程序仅消耗大约1G的virt.旧机器有4GB RAM,新机器有32GB.

java 64-bit jvm memory-management virtual-memory

66
推荐指数
4
解决办法
9597
查看次数

如何判断我的应用程序是作为32位还是64位应用程序运行?

如何判断我的应用程序(在Visual Studio 2008中作为任何CPU编译)是作为32位还是64位应用程序运行?

c# 64-bit 32-bit

64
推荐指数
4
解决办法
2万
查看次数

如何在64位Windows上安装SciPy?

如何在我的系统上安装SciPy?

对于NumPy部分(SciPy依赖),实际上有64位Windows的安装程序:numpy-1.3.0.win-amd64-py2.6.msi(直接下载URL,2310144字节).

运行SciPy superpack安装程序会在对话框中显示以下消息:

无法安装.需要Python 2.6版,这在注册表中找不到.

我已经安装了Python 2.6.2(并在其中安装了一个有效的Django),但我不知道任何注册表故事.

注册表项似乎已经存在:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Python]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help\Main Python Documentation]
@="D:\\Python262\\Doc\\python262.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath]
@="D:\\Python262\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup]
@="Python 2.6"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\PythonPath]
@="D:\\Python262\\Lib;D:\\Python262\\DLLs;D:\\Python262\\Lib\\lib-tk"
Run Code Online (Sandbox Code Playgroud)

到目前为止我做了什么:

步骤1

下载NumPy superpack安装程序numpy-1.3.0rc2-win32-superpack-python2.6.exe(直接下载URL,4782592字节).运行此安装程序会产生相同的消息,"无法安装.需要Python版本2.6,这在注册表中找不到.". 更新:实际上NumPy的安装程序有效 - 请参阅问题的开头.

第2步

试图以另一种方式安装NumPy.下载了zip包numpy-1.3.0rc2.zip(直接下载URL,2404011字节),以正常方式将zip文件解压缩到临时目录,D:\ temp7 \numpy-1.3.0rc2(其中setup.py和README) .txt是).然后我打开了一个命令行窗口,然后:

d:
cd D:\temp7\numpy-1.3.0rc2
setup.py install
Run Code Online (Sandbox Code Playgroud)

这运行了很长时间,还包括使用cl.exe(Visual Studio的一部分).这是一个近5000行长的 成绩单(230 KB).

这似乎有效.我现在可以用Python做到这一点:

import numpy as np
np.random.random(10)
Run Code Online (Sandbox Code Playgroud)

结果如下:

array([ 0.35667511,  0.56099423,  0.38423629,  0.09733172,  0.81560421,
        0.18813222,  0.10566666,  0.84968066,  0.79472597,  0.30997724])
Run Code Online (Sandbox Code Playgroud)

第3步

下载了SciPy superpack安装程序,scipy-0.7.1rc3- win32-superpack-python2.6.exe(直接下载URL,45597175字节).运行此安装程序会导致在开头列出消息

第4步 …

python windows 64-bit numpy scipy

64
推荐指数
5
解决办法
13万
查看次数

Visual Studio 2012 64位?

我知道在visual studio 2010中没有64位版本.vs2012有64位版本吗?

64-bit visual-studio visual-studio-2012

64
推荐指数
3
解决办法
10万
查看次数

检测当前Windows版本是32位还是64位

信不信由你,我的安装程序太旧了,它没有选择检测64位版本的Windows.

是否有Windows DLL调用或(甚至更好)一个环境变量,可以为Windows XP和Windows Vista提供该信息?

一种可能的解决方

我看到维基百科声称64位版本的Windows XP和Windows Vista都有一个独特的环境变量:%ProgramW6432%所以我猜测在32位Windows上它是空的.

此变量指向Program Files目录,该目录存储Windows和其他所有已安装的程序.英语系统的默认设置是C:\Program Files.在64位版本的Windows(XP,2003,Vista)中,还有%ProgramFiles(x86)%默认值C:\Program Files (x86)%ProgramW6432%默认值C:\Program Files.在%ProgramFiles%本身取决于请求该环境变量中的进程是否为本身的32位或64位(这是由Windows的上-Windows 64位重定向引起的).

windows 64-bit batch-file

62
推荐指数
7
解决办法
12万
查看次数

臭名昭着的程序集绑定错误

我真的需要帮助,因为我失去了纠正问题的希望.

我正在使用Office Communications Server 64位库.我在项目中使用了3个dll,Microsoft.Rtc.Collaboration.dll,Microsoft.Rtc.Internal.Media.dll和SIPEPS.dll.我不确定Microsoft.Rtc.Collaboration,但Internal.Media和SIPEPS都是x64.在GAC程序集列表中,Rtc.Collaboration显示处理器Arhitecture下的MSIL,其他显示AMD64.

我的项目编译没有错误与这些引用,但在运行时我收到错误:

无法加载文件或程序集"Microsoft.Rtc.Internal.Media"或其依赖项之一.尝试加载格式不正确的程序.

我尝试使用CPU设置为任何CPU来编译项目,但没有任何变化.在x64和x86设置下,我收到此错误.

任何帮助表示赞赏.

更新:下面是程序集绑定日志.

=== Pre-bind state information ===
LOG: User = CONTOSO\elodie
LOG: DisplayName = Microsoft.Rtc.Internal.Media
 (Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Microsoft.Rtc.Internal.Media | Domain ID: 9
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the …
Run Code Online (Sandbox Code Playgroud)

64-bit visual-studio-2010

61
推荐指数
3
解决办法
6万
查看次数

在C++中是否有64位整数的"标准"类似htonl的函数?

我正在研究memcache协议的实现,在某些点上,它使用64位整数值.这些值必须以"网络字节顺序"存储.

我希望有一些uint64_t htonll(uint64_t value)功能可以进行更改,但不幸的是,如果它存在,我找不到它.

所以我有1或2个问题:

  • 是否有任何可移植(Windows,Linux,AIX)标准功能?
  • 如果没有这样的功能,你会如何实现它?

我想到了一个基本的实现,但我不知道如何在编译时检查字节序以使代码可移植.所以你的帮助非常受欢迎;)

谢谢.


这是我写的最终解决方案,感谢Brian的解决方案.

uint64_t htonll(uint64_t value)
{
    // The answer is 42
    static const int num = 42;

    // Check the endianness
    if (*reinterpret_cast<const char*>(&num) == num)
    {
        const uint32_t high_part = htonl(static_cast<uint32_t>(value >> 32));
        const uint32_t low_part = htonl(static_cast<uint32_t>(value & 0xFFFFFFFFLL));

        return (static_cast<uint64_t>(low_part) << 32) | high_part;
    } else
    {
        return value;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ 64-bit portability endianness htonl

60
推荐指数
4
解决办法
4万
查看次数