我在Java中有一个方法:
public int getInt() {
IntByReference ibr = new IntByReference();
if (CFLib.INSTANCE.CFNumberGetValue(this, 4, ibr))
return ibr.getValue();
return -1; }
这里是参考:
我如何才能将其完全复制到C#.net?
答案 0 :(得分:1)
那4对应于枚举值kCFNumberSInt64Type
。为什么被卡入(32位)整数?无论如何,看起来CFNumberGetValue
想要void*
(C ++)作为第三个参数。
public int getInt() {
int i;
if (CFLib.INSTANCE.CFNumberGetValue(this, kCFNumberSInt32Type, (IntPtr)i))
return i;
return -1;
}
我不知道是否需要对第一个参数做任何事情,因为我不知道this
是什么。