mstorsjo/msvc-wine

GDI+ has some include file problems

philmb3487 opened this issue · 2 comments

When trying to build wxWidgets I'm getting some include file issues with file case.
The code does this.

 #include <gdiplus.h>
 using namespace Gdiplus;
..
/opt/msvc/kits/10/include/10.0.22621.0/um/gdiplus.h(56,14): fatal error: 'GdiplusGpStubs.h' file not found
   56 |     #include "GdiplusGpStubs.h"
      |              ^~~~~~~~~~~~~~~~~~
1 error generated.


When I look inside that gdiplus header.

 // Define the Current GDIPlus Version
 #ifndef GDIPVER
 #define GDIPVER 0x0100
 #endif
 
 #include <pshpack8.h>   // set structure packing to 8
 
 namespace Gdiplus
 {
     namespace DllExports
     {
         #include "GdiplusMem.h"
     };
 
     #include "GdiplusBase.h"
 
     #include "GdiplusEnums.h"
     #include "GdiplusTypes.h"
     #include "GdiplusInit.h"
     #include "GdiplusPixelFormats.h"
     #include "GdiplusColor.h"
     #include "GdiplusMetaHeader.h"
     #include "GdiplusImaging.h"
     #include "GdiplusColorMatrix.h"
 #if (GDIPVER >= 0x0110)    
     #include "GdiplusEffects.h"
 #endif

How should I deal with this situation? Obviously I can edit the file, but that's not very reproducable.

I believe @mstorsjo is very nice to help you. But please describe your issue clearly, especially posting the compile command lines. I guess you are using native clang-cl instead of wine-msvc. So you are facing filename casing issue. This is definitely a bug since we should have rewrite these headers to include lowercased files. Don't let us guess.

See #124 for a potential fix for this.