[Gauche-devel-jp] Re: genstub を使った winapi のバインドでコアダンプ

Back to archive index

Kawai Shiro pract****@yahoo*****
2004年 8月 16日 (月) 17:32:51 JST


--- shelarcy <shela****@capel*****> からのメッセージ:
> On Mon, 16 Aug 2004 13:12:35 +0900, shelarcy  
> <shela****@capel*****> wrote:
> > 「直接的にバインド」というのは、
> >
> > (define-cproc win-set-timer (hWnd::<hwnd> nIDEvent::<u_int>
> > uElapse::<u_int> lpTimerFunc::<timerproc>)
> >    (return <u_int> "SetTimer"))
> >
> > のような形でと言う意味でした。安易に逃げているところがあるので、もう
> > 少し調べてみて行き詰まったら、今度こそ質問したいと思います。
> 
> やっぱり安易に逃げすぎでした。
> 詳しく定義を見ていくと、H... という名前の型は
> 
> typedef void *PVOID,*LPVOID;
> 
> #ifdef STRICT
> typedef void *HANDLE;
> #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
> #else
> typedef PVOID HANDLE;
> #define DECLARE_HANDLE(n) typedef HANDLE n
> #endif
> 
> DECLARE_HANDLE(HWND);
> 
> こんな風になっています。
> 
> 
> また、LPSTR、LPCTSTR、LPVOID といった型は gauche で定義されている型と
> 違ってポインタになっています。
> 
> typedef unsigned short wchar_t;
> typedef wchar_t WCHAR;
> typedef WCHAR TCHAR;
> typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR;
> typedef const TCHAR *LPCTSTR;
> 
> typedef void *PVOID,*LPVOID;
> 
> この辺りの SCM... および Scm... の定義をどのように直せばよいでしょうか?

今、WiLiKiのGauche:WinAPIにあるコードを書いたのってshelarcyさんですか?
だとしたら、まず、C言語の勉強をしてください。特にポインタとメモリ管理のあたり。
(他意はありません。それが、動くものを書けるようになる唯一の方法だと
思います。)

--shiro


__________________________________________________
GANBARE! NIPPON!
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE
http://mail.ganbare-nippon.yahoo.co.jp/




Gauche-devel-jp メーリングリストの案内
Back to archive index