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

Back to archive index

shelarcy shela****@capel*****
2004年 8月 16日 (月) 16:35:04 JST


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... の定義をどのように直せばよいでしょうか?


-- 
shelarcy <shela****@capel*****>
http://page.freett.com/shelarcy/



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