RE: [Cxxgui-devel] RE: C++ GUI library
Brought to you by:
davidturner
From: Daniel J. <dan...@em...> - 2004-03-10 20:12:56
|
On Wed, 2004-03-10 at 05:33, David Turner wrote: > Great. I've added you to the developer's list on the project, so you > should be able to commit your changes. Ok, it's checked in. They still need quite a bit of work. There's stuff in the Jamfile for test which should be defined in the library jamfile. But it does work for GTK. > Hmm. It would be nice to have it working... unfortunately I don't have > VC6 anymore. If you could send me an error output, maybe I can fix it. > I suspect that the problem will be the factory. It should be quite easy > to write it in a compatible manner. > > I'll test with cygwin and mingw this end. I've been trying it with cygwin as well. Anyway, here's a list of problems. Most of them I can fix, but I just want to check what the right way is. Cygwin Problems: - The windows code uses _alloca, but cygwin doesn't have this, it has alloca instead. I guess that the best thing to do is a define a macro which calls the right one, say CXXGUI_ALLOCA or something similar. I think this could be defined in win32.hpp, because that's included by all the windows implementation files, or would you prefer a separate header? Alternatively we could use boost::scoped_array. - main.cpp calls _beginthreadex(), which isn't on cygwin. I have no idea what the cygwin equivalent of that is. Visual C++ 6 problems: - SetWindowLongPtr, GetWindowLongPtr and LONG_PTR aren't available, you need to use SetWindowLong, GetWindowLong and LONG. I guess that we should either define the missing functions for Visual C++ 6, or provide a wrapper function which call the appropriate version. I realise that we want to use the newer functions when they're available. There are some other problems, but I think I can fix them quite easily, I'll have a go when I get the chance and post patches to the list, so that you can say if they're okay. I also checked in a quick change to util.hpp, so that is uses BOOST_DEDUCED_TYPENAME. It seemed trivial enough that I didn't need to check first. Even if all these problems are fixed, the build system still won't work on windows, because it doesn't create the dll properly. I think that may take me a little while to get working. I managed to successfully build the cygwin version, by making it single threaded, but it crashed when I clicked on the button to open the new window. I think it died at the message loop. I'm also not sure how to link the application so that it calls 'main' instead of 'winmain' but still acts like a GUI app. Daniel |