GNU RのFFI

GNU RFFI: Foreign Function Interfaceの仕組みを持っているが,例えば統合アーカイバプロジェクトで提供されてるような任意のDLL(ほとんどの場合C/C++で実装されたもの)を呼べる訳ではない.GNU Rが指定する特定のシグネチャの関数しか呼べないので,そのような適切なシグネチャを持ち,内部で所望のDLLを呼ぶような,いわゆる「グルー」のDLLを作る必要がある.まぁデータ表現の都合上しょうがないのかもしれないが... 面倒だよなぁ.よくある場合についてはFFIの方で適当に生のC表現に直してくれる方法も用意されていればいいのに.
具体的にはUnlha32.dll内の

int WINAPI Unlha(
                 HWND         _hwnd,
                 LPCTSTR      _szCmdLine,
                 LPTSTR       _szOutput,
                 const DWORD  _dwSize
                )

というシグネチャUnlhaが呼びたいんだが,_hwndNULLを渡すにも_svCmdLine"e foo.lzh"を渡すにも,R言語だけでは書きようがない.Rの基礎データ構造であるSEXPか,FFIを利用してもint *とかdouble *がせいぜい.