Windows FFI
Michael Walter
michael.walter at gmail.com
Wed Nov 3 21:20:12 PST 2004
I think it's pretty nice anyway.
Is there currently a FFI for Linux, btw?
Cheers,
Michael
On Thu, 4 Nov 2004 03:28:49 -0800, Lee Salzman <lsalzman1 at cox.net> wrote:
> Honestly, right now I don't think it's appropriate to dig to deep into
> Windows specific features given that VC can't even properly compile
> Slate at all. I'd rather wait till I can generate actual stubs rather
> than having to go through C before this is messed with.
>
> Lee
>
>
>
> On Wed, Nov 03, 2004 at 02:03:59AM -0500, Todd Fleming wrote:
> > Hello. I started toying with Slate yesterday and decided to try adding
> > FFI support for Windows. I can now do the following:
> >
> > [| l f |
> > l: (ExternalLibrary newNamed: 'User32').
> > f: (l lookup: 'MessageBoxA').
> > f argumentsFormat:
> > {
> > ExternalMethod ArgumentFormat Int.
> > ExternalMethod ArgumentFormat Bytes.
> > ExternalMethod ArgumentFormat Bytes.
> > ExternalMethod ArgumentFormat Int.
> > }.
> > f callFormat: ExternalMethod CallFormat Std.
> > (f applyTo: {0 'Hello from Slate!\0' 'My Dialog\0' 0}).
> > ] do.
> >
> > Woohoo!
> >
> > As is, the FFI works with __cdecl functions. I added the ability to call
> > __stdcall ones. Here is how you set the calling convention:
> >
> > "For the Win32 API"
> > f callFormat: ExternalMethod CallFormat Std.
> >
> > "For normal C functions; the default"
> > f callFormat: ExternalMethod CallFormat C.
> >
> > I attached the patch to this message. It also includes some (!untested!)
> > fixes to windows/directory.c needed to compile. Warning: I added an
> > empty readDirectory() because I was too lazy to write a real one.
> >
> > The patch requires regenerating both the vm and the image.
> >
> > Todd
> >
>
>
More information about the Slate
mailing list