JNA を使用して Carbon API を呼び出しています。呼び出したい特定の API 呼び出しは、パラメータとして CFBooleanRef を取ります。値 kCFBooleanTrue と kCFBooleanFalse は、ヘッダー ファイルで直接外部参照として宣言されます。
API 呼び出しに値を渡すことができるように、Java 側でこれら 2 つの値への参照を取得するにはどうすればよいですか?
JNA を使用して Carbon API を呼び出しています。呼び出したい特定の API 呼び出しは、パラメータとして CFBooleanRef を取ります。値 kCFBooleanTrue と kCFBooleanFalse は、ヘッダー ファイルで直接外部参照として宣言されます。
API 呼び出しに値を渡すことができるように、Java 側でこれら 2 つの値への参照を取得するにはどうすればよいですか?
まあ、これは何の答えも得られていないので、他の誰かがこれを行う必要がある場合に備えて、私が思いついた解決策を書き留めるだけです:
最終的に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);
}
}