- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 JNAerator 生成 BridJ 代码时,它将无符号类型(例如 Windows 的 ULONG
)映射到普通的 Java long
:
// c code
typedef struct _S {
USHORT a;
ULONG b;
ULONG64 c;
} S;
// generated java code
class S extends StructObject {
@Field(0)
public short a() {
return this.io.getShortField(this, 0);
}
@Field(0)
S setA(short a) {
this.io.setShortField(this, 0, a);
return this;
}
@CLong
@Field(1)
public long b() {
return this.io.getCLongField(this, 2);
}
@CLong
@Field(1)
S setB(long b) {
this.io.setCLongField(this, 2, b);
return this;
}
// ULONG64 is ignored and not generated at all
但是,Java 类型是已签名,而不是未签名。如果我需要手动更正,我需要使用哪些类型?像这样的字节数组?
@Field(0)
public byte[] a() { ... };
@Field(0)
public byte[] setA(byte[] a) { // check correct length };
最佳答案
有符号和无符号类型具有相同的大小,只是语义不同。您绝对应该使用 JNAerator 选择的类型,并使用处理无符号类型的 Java 原语,例如 the ones introduced in Java 8 (例如,Integer.divideUnsigned)。
如果 Java 8 不适合您,您可以直接 use casts and manipulate bits wisely .
关于java - 无符号类型的 BridJ 类型映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581703/
BridJ 找不到共享库的方法。我需要帮助来理解原因。 该库由 JNAerator 生成。lib.so 的 mn -g: w _Jv_RegisterClasses
当使用 JNAerator 生成 BridJ 代码时,它将无符号类型(例如 Windows 的 ULONG)映射到普通的 Java long: // c code typedef struct _S
我一直在四处寻找包装我的 C++/OpenCV 代码并将其移至 Android 的方法。 到目前为止,我发现 JNI、JNA、JNAerator、SWIG 等 Bridj 更容易理解和使用。 Brid
我已经使用 JNI、JNA、BridJ 和 JavaCPP 多次重建我的 Java/C++ 项目,但每次我都会遇到随机(不可预测的)段错误。我已经验证使用此库的纯 C++ 可执行文件永远不会导致段错误
我一直在使用代码使我的 Java 应用程序的任务栏图标具有 Windows 7+ 应用程序固有的加载栏功能。我使用的代码如下: import lombok.val; import org.bridj.
我尝试在 Windows 7 上通过 BridJ 将 native 库 (lib.dll) 加载到 Java 应用程序,其中用户名是用希伯来语编写的。 重要的是 Java 应用程序下载 lib.dll
目前我正在使用 Android 版 BRIDj-0.6.1-android.jar。问题是该库显示不满足的链接错误,如下所示: 09-27 17:51:58.740: E/AndroidRuntime
有一个例子叫TaskbarListDemo.java在 GitHub 上的 BridJ 仓库中。当我尝试使用 .jar library 在 Netbeans 中编译时从 Maven(版本 0.7.0)
我正在尝试以某种方式使用 BridJ,但不确定它是否受支持: 我有一个 64 位应用程序。我通过调试器接口(interface)获取包含 32 位应用程序内存的字节数组。 我想使用 BridJ 将此字
Clojure 用户通常希望尽可能懒惰,并延迟类和对象的创建。本着同样的精神,如果我希望调用在运行时从 Java 内部解析的 native 函数,我可以使用 com.sun.jna.Function.
我在 C 中有这段代码,我想用 Java 编写相同的代码: static u_int32_t print_pkt (struct nfq_data *tb){ unsigned char *d
我正在寻找一些关于在多个 JNI 调用之间缓存和重用 Bridj JNI 对象的指南。我发现缓存 JNI 对象极大地加快了通过 JNI 调用 C 函数的速度,但它也会导致一些数值稳定性问题。基本上,有
我是一名优秀的程序员,十分优秀!