我有一个Java应用程序在Windows764位上运行,但在32位版本的JRE上运行。我需要此应用程序与串行com端口通信,显然我需要一点帮助。:)在您建议RXTX之前,我已经尝试过32位和64位版本的RXTXDLL。要么因为32位JRE无法加载64位DLL而失败,要么因为32位DLL给出java.lang.UnsatisfiedLinkError而失败:java.lang.UnsatisfiedLinkError:\cache\bundle1030\version0.0\bundle.jar-lib\0\lib\win32\rxtxSerial.dll:Can'tfinddepend
我有一个软件,我在appletjava上使用RXTXcomm.jar,在applet内部我正在与端口串行通信,所以,我需要通信并且它适用于2个版本,x86和x64,但是RXTXcomm.jar与2个文件同名,如何在我的应用程序中同时使用这两个jar? 最佳答案 jar(RXTXcomm.jar)与提供API的相同。不同之处在于native实现(Windows中的dll),因此您可以尝试为支持的不同平台生成不同的小程序,让用户选择合适的小程序。另一种方法是尝试捆绑所有native库并且可以工作。(检查了rxtx-2.1-7-bins-
如何检测另一个进程是否在Windows中以32/64位运行?我知道如何为我自己的流程执行此操作,但不知道如何为不同的流程执行此操作。任何语言的提示或解决方案都可以。谢谢! 最佳答案 查看IsWow64Process. 关于windows-检测另一个进程的位数(在Windows中),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1095085/
我编写了一个在x86和x64MSWindows系统下工作的打印机驱动程序。我还编写了一个安装程序,通过AddPrinterDriver和AddPrinter函数安装打印机驱动程序。到目前为止,还不错。问题是,如果我想将这台打印机从x64系统共享到x86系统,x64打印服务器需要为x86系统安装额外的驱动程序。现在我可以通过“打印机属性”->“共享”->“其他驱动程序”安装其他驱动程序并选择正确的.inf文件,但我想通过我的安装程序来完成。有人知道如何实现吗?感谢您的帮助! 最佳答案 所以我自己找到了解决办法。一定有更好、更简单的方法
我已经在Linux上完成了一些汇编编程,现在正尝试使用MASM在Windows上完成。不过,我遇到了几个问题。(我在这里尝试实现strlen()函数。我知道函数逻辑/指令不是最优的,但我只是想弄脏一些东西,这样我就可以继续实现其他C库函数.).386.modelflat,stdcalloptioncasemap:noneinclude\masm32\include\kernel32.incincludelib\masm32\lib\kernel32.libinclude\masm32\include\masm32.incincludelib\masm32\lib\masm32.lib.
运行如下代码后,在32位进程中,数据%ProgramFiles%自动转换。HKEYhSubKey;DWORDdwState;RegCreateKeyEx(HKEY_CURRENT_USER,L"TestKey",NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hSubKey,&dwState);std::wstringdata=L"%ProgramFiles%";RegSetValueEx(hSubKey,L"TestValue",NULL,REG_EXPAND_SZ,(BYTE*)data.c_str(),(DWORD)(
我读到我可以在模拟器上测试android应用程序,但我也可以使用Virtualbox,这样应用程序会更快。网上有很多关于Virtualbox的教程,但是都提示我必须选择LinuxonVirtualBox。我知道Android的内核是LinuxKernel2.6,但问题是:我还可以选择Windows吗?用Linux会更快吗?这是一个简单的好奇心。x86是体系结构,我认为我可以在Virtualbox上使用Linux、Windows或MacOSX。非常感谢你提前 最佳答案 对于Android,您需要选择Linux,因为在Android之下
在寄存器EBP中有一个int值,在EBX中有一个字符串。我需要在我自己的函数中从这些寄存器中获取值,对它们进行一些操作,最后跳回下面的一些代码。我在0x46AA17处对名为JmpHook的函数执行了一个JMP。voidJmpHook(){char*mystring;_asmmovmystring,ebxprintf("value:%s",mystring);_asm{jmp[0x46AA87]}}如您所见,我正在尝试将EBX处的字符串移动到mystring中,最后跳回0x46AA87,这是位于我的JMPJmpHook下方的几行。printf被调用并且mystring被输出,但所有这些在
我的系统上安装了NASM和Dev-Cpp。Dev-cpp随LD(GNU链接器)一起提供。我不熟悉汇编代码和从汇编文件创建32位Windows可执行文件的过程。我试过使用这个:nasm-fwin32ass.asmnasm-oassass.o我没有成功使用这些命令来创建可执行文件。汇编(使用NASM)和链接以生成将在32位Windows上运行的可执行文件的正确方法是什么? 最佳答案 您的一条评论(似乎已不复存在)确实提到您在Windows上安装了Dev-Cpp。如果您的路径上有Dev-CppMinGWbin目录,则GNU链接器LD可供您
在x86-64下切换堆栈的最少代码是多少?我正在尝试在没有getcontext或setjmp+内联汇编的情况下在Windows和Linux下实现纤程。它真的像交换$rsp和$rbp一样简单吗?因为我可以轻松做到。我只是不知道该怎么做。我对我的x86-64知识生疏了。 最佳答案 将RSP更改为指向不同的堆栈必须作为上下文切换的一部分来完成,上下文切换会保存旧线程/纤程中的所有寄存器并从新寄存器加载已保存的架构状态。不仅是RBP,还有所有RAX-RDI和R8-R15,以及RIP(通过jmp或ret)。我认为还有所有其他调用保留的架构状态