Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ECL, which should be the type of WPARAM, unsigned-int or void pointer?

3 views
Skip to first unread message

QT

unread,
Dec 14, 2008, 9:41:20 AM12/14/08
to
I am investigating win32 example in ecl.
I can build win32.lisp successfully, but when after executed do-test.
It will raise an error say: xxxxxxx is not of type FIXNUM.

Then I found the root cause is WPARAM sometimes appear to a very large
number such as 3556842955, then it will not be considered as a
fixnum.

It seems ecl used last 2 bits of int as tag bit to distinguish
immediate and complex object.

But the meaning of WPARAM is dependent. sometimes it means immediate
and sometimes it means handles, which can be a full 32 bits data.

Anybody has idea for it?

Thanks for your attention.

Pascal J. Bourguignon

unread,
Dec 14, 2008, 11:28:29 AM12/14/08
to
QT <Chyi...@gmail.com> writes:

I don't know anything about win32.lisp, but you could try to use
values of type (unsigned-byte 32) instead of fixnum.

You can create a uint32 type with:
(deftype uint32 () (unsigned-byte 32))


--
__Pascal Bourguignon__

QT

unread,
Dec 15, 2008, 3:34:33 AM12/15/08
to
On Dec 15, 12:28 am, p...@informatimago.com (Pascal J. Bourguignon)
wrote:

Thanks, I will try it.

0 new messages