On Sat, Sep 18, 2010 at 12:58 PM, Daniel Quintela <[hidden email]> wrote:
>.."Win32 API wrappers"...I decided to "give them up for adoption"...
A few comments on my look through the Win32 library... It's a small
assortment of thin C API wrappers around common Win32 API functions,
not unlike the Perl Win32.pm library .
The choice of functions and scope of this module is somewhat
arbitrary. Thousands of Win32 functions are omitted, and it doesn't
focus on implementing a complete Windows DLL like kernel32.dll  or
a single functional area like the registry (e.g. Perl
Win32::Registry). It is pragmatic though in that it implements many
of the more common API functions. An obvious function lacking is
MessageBox, which Win32.pm implements, and maybe the very versatile
There are modules that compete with this. The Win32 API is low level
and very non-portable. Sometimes you need it, but on the other hand
you can access it via the C API (as luasockets does) or Alien. Alien
does much of the same thing more generally though with special calling
conventions. I had in the past invoked raw Win32 serial API functions
via Alien , although more recently I've moved to librs232lua. The
WinHttp wrapper is interesting, although people typically do that in a
portable way via luasockets. You can also access WinHttp via LuaCOM
without any additional code, but you will need to bring in LuaCOM.
This module is kind-of like lposix, but it may be more low level--e.g.
it's not a "safe" API that won't crash on passing invalid handles--and
it doesn't wrap on a higher level like MFC/WTL either. The module
does have the property though that it has no additional dependencies
and it can be picked apart: If you just need a single function and you
copy and paste just that function.
In wrapping a large API, there can be a lot of redundant coding. I
would prefer a data-driven approach where the Lua binding code is
automatically generated from an API description. This also makes it
easy to globally change the nature of the binding, such as the error
handling approach, argument checking, and even the implementation
(e.g. targeting C API code or targeting Alien) or the documentation.
The difficulty though is that the Win32 API is not always regular in
calling conventions--e.g. you need to handle string buffers in certain
ways. GetLastError() is pretty common though.
(BTW, this is not an offer to maintain this module :) It's just some
comments on how the module fits in the grand scheme of things and the
possible directions that someone who would maintain this could take.)
> Hi community,
> The time I spend to keep my company running doesn't allow me to
> continue the maintenance and improvement of "LuaTask" and "Win32 API
> I decided to "give them up for adoption" to somebody interested in
> their future development.
> Any candidate can send me a e-mail through the list or to my private
> address in order to agree the transfer of the control of one or both
> Best regards,
I'm ready to adopt the "win32 API wrappers" if you needed.
What shold I do ?
On Sat, Sep 18, 2010 at 10:04 PM, David Manura <[hidden email]> wrote:
> In wrapping a large API, there can be a lot of redundant coding. I
> would prefer a data-driven approach where the Lua binding code is
> automatically generated from an API description.
This is the approach taken in lua-gnome, which uses gccxml to crunch
all the headers and provide bindings for over 7000 functions, but the
resulting library is still less than 400K.
There was a discussion sometime back of using Alien with
auto-generated signatures to do the same thing for Win32.
The _utopian_ situation is a somewhat higher level set of libraries
which provide equivalent functionality on different platforms in a
uniform way. All modern operating systems do shared memory or async
i/o, but the details differ. Ideally a programmer could rely on an
abstracted view of these OS services.
> Le 18/09/2010 18:58, Daniel Quintela a écrit :
>> Hi community,
>> The time I spend to keep my company running doesn't allow me to
>> continue the maintenance and improvement of "LuaTask" and "Win32 API
>> I decided to "give them up for adoption" to somebody interested in
>> their future development.
>> Any candidate can send me a e-mail through the list or to my private
>> address in order to agree the transfer of the control of one or both
>> Best regards,
> I'm ready to adopt the "win32 API wrappers" if you needed.
> What shold I do ?
> Best regards
> Noël Frankinet
If you agree with this, I will add you (gistek) to the project at
luaforge.net as an admin user.
After that, you will take control of the project and you can remove me
You can contact me privately for any further information or help.