标签: 32-bit

32位本机代码,JNA和64位JVM

我正在开发一个java应用程序,使用32Bit本机库,我正在通过JNA访问.在MacOS X Snow Leopard上,可以将参数"-d32"传递给JVM,这会导致JVM以32位模式启动.我有一个启动器应用程序,它设置一些环境变量,然后启动主应用程序.如果程序在MacOS上执行,这也是决定使用-d32开关启动主应用程序的地方.

所以这是我的问题:在Windows或Linux上是否有类似的方法来解决这个问题?

如果可以在32位模式下运行64位JVM,那将是最好的.但我真的不敢告诉我的用户安装额外的32位JVM,这不是问题所在.问题是,我必须告诉我的启动器应用程序可以找到32Bit JVM,因为PATH变量中的第一个可能是64Bit.

提前致谢,

aRestless

java 64-bit jvm 32-bit jna

8
推荐指数
1
解决办法
2520
查看次数

32位处理器真的可以处理2 ^ 32个内存位置吗?

我觉得这可能是一个奇怪/愚蠢的问题,但是这里......

在问题中,C中的NULL是否需要/定义为零?,已经确定的是,NULL指针指向一个不可寻址存储器位置,并且还认为NULL0.

现在,据说32位处理器可以解决2^32内存位置问题.

2^32只是可以使用32位表示的不同数字的数量.这些数字中有0.但是,因为0,也就是说,NULL应该指向什么,我们不应该说32位处理器只能寻址2^32 - 1内存位置(因为0它不应该是一个有效的地址)?

c memory 32-bit

8
推荐指数
2
解决办法
471
查看次数

32位进程如何与.NET中的64位进程通信?

Windows无法使32位进程加载64位dll,因此我尝试使用远程处理以允许32位进程与64位进程交互.

这就是问题所在:虽然两个应用程序位于同一台机器上,但一个是32位,另一个是64位,它们必须是这样的:32位或64位都会破坏这些应用程序构建在顶层的所有内容的.

我正在使用.NET的System.Runtime.Remoting.RemotingConfiguration类并调用其Configure()方法并将引用传递给App.config文件,该文件引用我将通过远程处理访问的MarshalByRefObject类.

我得到它的工作,但只有长,Client,Host,MarshalByRefObject类是32位或64位.如果我把它们混合起来这将无效:我最终会遇到BadImageFormatException:

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

只要我将这两个应用程序设置为32位或64位,异常就会消失,但同样,其中一个必须是32位,另一个必须是64位.

有人能告诉我如何在32位.NET应用程序和.64位.NET应用程序之间启用进程间通信吗?

.net 64-bit remoting 32-bit ipc

8
推荐指数
1
解决办法
4904
查看次数

32位Linux上的Syscall或sysenter?

从MS-DOS开始,我知道使用中断的系统调用.在旧论文中,我看到了int 80h在Linux上调用系统函数的参考.由于现在相当长的一段时间,我知道int 80h不赞成使用该syscall指令.但我不能让它在我的32位机器上工作.

这个问题

syscall指令仅用于64位平台吗?不是32位Linux使用syscall

样品测试

在我的32位Linux(Ubuntu Precise)上,该程序终止于核心转储:

global _start

_start:
        mov     eax, 4                ; 4 is write
        mov     ebx, 1                ; 1 is stdout
        mov     ecx, message          ; address of string
        mov     edx, length           ; number of bytes
        syscall

        mov     eax, 1                ; 1 is exit
        xor     ebx, ebx              ; return code 0
        syscall

message:
        db  10,"Hello, World",10,10
length  equ $ - message
Run Code Online (Sandbox Code Playgroud)

我试过sysenter而不是syscall,但它以同样的方式崩溃.

linux assembly 32-bit system-calls sysenter

8
推荐指数
2
解决办法
6401
查看次数

64位模式下的objc_setAssociatedObject函数错误不在32位

我在我的项目中使用一个名为SKSTableView的整洁的表视图控制器,它允许每个表行具有多个子行.这段代码在32位模式下运行完美,但是当我在iPhone 5S或4英寸64位模式的模拟器中运行时,当你点击一行来获取子行时它会崩溃.我对64位和32位iOS系统的差异一无所知.我很想知道这里发生了什么.

您会注意到*SubRowObjectKey设置为void-我得到的错误是: EXC_BAD_ACCESS_(code = EXC_I386_GPFLT)
这是一个一般保护错误,试图访问不存在的东西(?)

当它崩溃Xcode突出显示这行代码时
__CODE__:

#pragma mark - NSIndexPath (SKSTableView)
static void *SubRowObjectKey;
@implementation NSIndexPath (SKSTableView)
@dynamic subRow;
- (NSInteger)subRow
{
    id subRowObj = objc_getAssociatedObject(self, SubRowObjectKey);
    return [subRowObj integerValue];
}
- (void)setSubRow:(NSInteger)subRow
{
    if (IsEmpty(@(subRow))) {
        return;
    }
    id subRowObj = @(subRow);
    objc_setAssociatedObject(self, SubRowObjectKey, subRowObj, OBJC_ASSOCIATION_ASSIGN);
}
+ (NSIndexPath *)indexPathForSubRow:(NSInteger)subrow inRow:(NSInteger)row inSection:(NSInteger)section
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];
    indexPath.subRow = subrow;   
    return indexPath;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

64-bit 32-bit objective-c ios general-protection-fault

8
推荐指数
2
解决办法
2979
查看次数

在已安装64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端

我在Windows 2008 R2上安装了64位Oracle数据库服务器(11.2.0.3),当然,它会自动安装64位客户端.我必须在32位的服务器上安装一个应用程序,并且需要32位Oracle客户端.(不要问 - 我无法安装此应用程序的64位版本,它不能与64位客户端一起使用,我无法在另一台服务器上安装它.)

现在我尝试将32位客户端安装到不同的物理文件夹中,并在安装时为Oracle Base和Software Location选择了不同的值,并且安装得很好.它将32位客户端安装的BIN文件夹放在PATH statemtn的头部.

但是,当我尝试使用32位版本运行"SQLplus系统/系统"时,它给了我"ORA-12560:TNS:协议适配器错误".当我使用64位sqlplus.exe进入文件夹并运行它(直接而不是通过PATH)时,"系统/系统"凭据工作正常.

我将TNSNames文件夹从Oracle Server的NETWORK/admin文件夹复制到Oracle Client的NETWORK/admin文件夹,然后重新启动服务器.结果相同.

这是我对Oracle的故障排除知识的范围.

如何让32位客户端在与64位Oracle Server相同的服务器上运行?我知道在linux/Unix中,你只需将lib32文件夹放入64位客户端文件夹并设置几个环境变量,但我很确定它在Windows中并不那么简单.

如果有办法做到这一点,请回答您的描述,因为我需要逐步说明.

提前致谢.

database oracle client 32-bit

8
推荐指数
1
解决办法
5万
查看次数

为什么BinaryReader.ReadUInt32()反转位模式?

我正在尝试使用BinaryReader类读取二进制文件,我需要将其作为UInt32的块读取,然后在后面进行一些位移等操作.

但是,由于某种原因,当我使用ReadUInt32方法时,位顺序是相反的.

如果我例如有一个文件,其中前四个字节看起来像这样十六进制的,0x12345678他们最终就这样被ReadUInt32读取后:0x78563412.

如果我使用ReadBytes(4)方法,我得到预期的数组:

[0x00000000]    0x12    byte
[0x00000001]    0x34    byte
[0x00000002]    0x56    byte
[0x00000003]    0x78    byte
Run Code Online (Sandbox Code Playgroud)

为什么是这样?这只是方式.net代表内存中的uint?在不同的平台上是否相同(我运行64位Windows 7,.net 3.5 sp1)?

.net 64-bit 32-bit bit-manipulation endianness

7
推荐指数
2
解决办法
3958
查看次数

在64位平台上获取非常大的.gz文件的文件大小

根据gz的具体情况,filesize保存在.gz文件的最后4个字节中.

我创建了2个文件

dd if=/dev/urandom of=500M bs=1024 count=500000
dd if=/dev/urandom of=5G bs=1024 count=5000000
Run Code Online (Sandbox Code Playgroud)

我gziped他们

gzip 500M 5G
Run Code Online (Sandbox Code Playgroud)

我检查了最后4个字节

tail -c4 500M|od -I      (returns 512000000 as expected)
tail -c4 5G|od -I        (returns 825032704 as not expected)
Run Code Online (Sandbox Code Playgroud)

它似乎击中了看不见的32位屏障,使得写入ISIZE的价值完全无稽之谈.哪个更令人讨厌,而不是他们使用了一些错误位.

有没有人知道从.gz获取未压缩的.gz文件大小而不提取它的方法?

谢谢

规范:http://www.gzip.org/zlib/rfc-gzip.html

编辑:如果有人尝试,你可以使用/ dev/zero而不是/ dev/urandom

64-bit gzip 32-bit filesize gunzip

7
推荐指数
1
解决办法
2568
查看次数

适用于Android的Eclipse?

我应该使用32位Eclipse还是64位Eclipse进行Android开发?我在MacBook Pro(Core 2 Duo)上.Android编码的版本是否重要?

eclipse 64-bit android 32-bit version

7
推荐指数
1
解决办法
5696
查看次数

是否可以在 Windows -32 位系统中安装 Docker 容器?

我收到错误,因为 Docker 需要 64 位配置,有什么方法可以在 32 位系统中安装 docker。它是具有 Windows 7 机器的 32 位 i3 处理器。

32-bit docker

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