1

我在本机代码中有功能void clang_tokenize(CXTranslationUnit TU, CXSourceRange Range, CXToken **Tokens, unsigned *NumTokens);

该函数将返回分配的令牌数组**Tokens和令牌计数*NumTokens。我已经使用 jnaerator 生成了结构,所以它们已经准备好了。我如何在 java 中编写函数签名(指向指针的指针是主要困难)?对于未签名的*,我IntByReference在 JNA 中有。我应该使用 PointerByReference 吗?请给我例子

4

1 回答 1

2

假设CXToken是一个结构,并且被调用函数返回一个由被调用者分配的数组:

PointerByReference pref = new PointerByReference();
IntByReference iref = new IntByReference();

clang_tokenize(tu, range, pref, iref);
CXToken token = new CXToken(pref.getValue());
CXToken[] tokens = (CXToken[])token.toArray(iref.getValue());
于 2013-05-12T16:45:54.983 回答