On 5/26/07, Alexandre Julliard julliard@winehq.org wrote:
"Evan Stade" estade@gmail.com writes:
I want to write conformance tests for gdiplus and that requires the use
of
c++. Even if I were to focus on the gdi+ flat api, the windows SDK
headers
for that have c++ code in them, also eventually when the gdi+ c++
wrappers
are written on top of the flat api then we will need to be able to
compile
c++ in the wine environment. What do I have to do to be able to write
these
tests?
I don't see any need to use C++ for that. All the exported APIs are callable from C code, and the corresponding headers are C compatible too.
-- Alexandre Julliard julliard@winehq.org
Well the Platform SDK headers use C++. From gdiplus.h:
... namespace DllExports { #include "GdiplusFlat.h" }; ...
And if you try to just include GdiplusFlat.h (i.e . only using the gdi+ flat api), you have to include GdiplusGpStubs.h. From GdiplusGpStubs.h:
... class GpBrush {}; class GpTexture : public GpBrush {}; ...
So it would be impossible to compile any conformance test for gdi+ in C using the platform sdk headers. In my eyes it seems that there are 2 options: edit the platform sdk headers so that they are compatible with C code (change "class GpFoo {};" to "typedef void GpFoo") or use g++ to compile. Are you suggesting the former over the latter?
-Evan Stade