我正在使用 JNA 调用 Carbon API。我要调用的特定 API 调用将 CFBooleanRef 作为参数。值 kCFBooleanTrue 和 kCFBooleanFalse 在头文件中被声明为直接外部引用。
如何在 Java 端获取对这两个值的引用,以便将值传递给 API 调用?
我正在使用 JNA 调用 Carbon API。我要调用的特定 API 调用将 CFBooleanRef 作为参数。值 kCFBooleanTrue 和 kCFBooleanFalse 在头文件中被声明为直接外部引用。
如何在 Java 端获取对这两个值的引用,以便将值传递给 API 调用?
好吧,因为这还没有得到任何答案,所以把我想出的解决方案记下来,以防其他人需要这样做:
我最终使用 Rococoa 实现了我自己的 NSNumber 版本,这样我就可以在其中调用 numberWithBool 方法来获取 NSBoolean 的实例。然后可以将其用作CFBoolean。
public interface MyNSNumber extends NSObject {
public static final _Class CLASS = Rococoa.createClass("NSNumber", _Class.class);
public interface _Class extends NSClass {
ID numberWithBool(boolean value);
}
}