構造体の配列を渡す必要がある C 関数をラップしようとしています。
私の .i ファイルの関数定義は次のとおりです。
extern HRESULT WINAPI ScriptItemize(
const WCHAR *pwcInChars, // In Unicode string to be itemized
int cInChars, // In Codepoint count to itemize
int cMaxItems, // In Max length of itemization array
const SCRIPT_CONTROL *psControl, // In Analysis control (optional)
const SCRIPT_STATE *psState, // In Initial bidi algorithm state (optional)
SCRIPT_ITEM *pItems, // Out Array to receive itemization
int *pcItems); // Out Count of items processed (optional)
構造体 SCRIPT_CONTROL、SCRIPT_STATE、および SCRIPT_ITEM はすべて、.i ファイルで事前に定義されています。
次の行を含めることで、pcItems が戻り値であることを示すことができます。
%include <typemaps.i>
%apply int *OUTPUT {int *pcItems};
ただし、pItems で同じことをしようとしています。
%apply SCRIPT_ITEM *OUTPUT {SCRIPT_ITEM *pItems};
次の警告が表示されます。
Can't apply (SCRIPT_ITEM *OUTPUT). No typemaps are defined.
pItems が戻り値であることを示すにはどうすればよいですか?
また、Python 内から SCRIPT_ITEM 構造体の配列を作成するにはどうすればよいですか?