Actually Shachar,
I was thinking along these lines:
(1) Programs in WINE are making direct calls to internal functions (which are not really Win32, but made by us using which we can use te Win32 functions as wrappers...) and that's just possible because C functions are globally callable (the only thing you really need to keep the compiler happy is the function prototype)
And that's a bad thing, because while developing tools we should really forget that we are coding fo WINE, and just write using Win32 SDK APIs...
Encapsulating internal WINE functions as private, and exposing them using the correct APIs would be better engineering...
Just to force lazy people like us to write protable code (you see, calling internal WINE functions are a lot easier than calling the corresponding wrappers..
(2) A few things like DirectX and COM are so very closely tied with C++ objects that implementing them in C seems an overkill to me. But after knowing they are done, I have nothing against that ....
(3) C++ is VERY reusable. WINE has a lot of potential for reusablity , but by doing C where it was not needed, we are unnecessarily having to spend time finding out pieces here and there in the huge code structure.
WINE is recieving more interest than ever, and we can only encourage people to join us by giving something they too can reuse, and people who really work for WINE are those types who start writing their own code if they find that tracing down a function and it's references will take more time.
For example, whatever I have gone through (which is VERY little BTW..), I still feel that implementing many tools like winemenubuilder or winefile would have been better in C++
Infact, I intent to do some experimentation after Xmas (I am having my semester exams now, so ..)
Hope what I said reaches you all ;)
Season's greetings
Subhobroto
<snip> On Thu, 11 Dec 2003 Shachar Shemesh wrote :
I'm sorry, it has been YEARS since I wrote anything OLE related (my very first Windows program was an OLE server, hand coded, that did a shell extension. That was my only interaction with OLE). As such, I will not presume to decide whether that statement is correct or not.
</snip snip, snip..>
(2) A few things like DirectX and COM are so very closely tied with C++ objects that implementing them in C seems an overkill to me. But after knowing they are done, I have nothing against that ....
Well, speaking for DirectX 1-7 , I do not see exactly what C++ would have gained us (except headaches when you would have needed to check the generated ASM to see if the compiler did the right thing behind your back to map 100 % with MS's COM API).
Anyway, it could only have helped us a bit on the COM inftrastructure (which is about 2 % of the total work and was mostly auto-generated by a Python script :-) ).
Lionel