我正在开发一个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
我觉得这可能是一个奇怪/愚蠢的问题,但是这里......
在问题中,C中的NULL是否需要/定义为零?,已经确定的是,NULL指针指向一个不可寻址存储器位置,并且还认为NULL是0.
现在,据说32位处理器可以解决2^32内存位置问题.
2^32只是可以使用32位表示的不同数字的数量.这些数字中有0.但是,因为0,也就是说,NULL应该指向什么,我们不应该说32位处理器只能寻址2^32 - 1内存位置(因为0它不应该是一个有效的地址)?
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应用程序之间启用进程间通信吗?
从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,但它以同样的方式崩溃.
我在我的项目中使用一个名为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)

我在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中并不那么简单.
如果有办法做到这一点,请回答您的描述,因为我需要逐步说明.
提前致谢.
我正在尝试使用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)?
根据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
我应该使用32位Eclipse还是64位Eclipse进行Android开发?我在MacBook Pro(Core 2 Duo)上.Android编码的版本是否重要?
我收到错误,因为 Docker 需要 64 位配置,有什么方法可以在 32 位系统中安装 docker。它是具有 Windows 7 机器的 32 位 i3 处理器。