alanedwardes / VAwesomium

Awesomium implementation for Valve's Source Engine, as a UI element.
5 stars 3 forks source link

Redefiniton warnings compiling VAwesonium #3

Open davecb opened 10 years ago

davecb commented 10 years ago

I'm seeing a sequence of redefinition warnings compiling VAwesonium with the 2013 SDK using VC++ 2010, which come from the compilation of vgui_int.cpp

Do you see these normally, or is this peculiar to my configuration, which also includes MyPanel?

The compiler saith: Warning 1 warning C4005: 'INVALID_HANDLE_VALUE' : macro redefinition c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h 59

Warning 2 warning C4005: 'GetCommandLine' : macro redefinition c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h 7558

...

Warning 11 warning C4005: 'RegSetValueEx' : macro redefinition c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winreg.h 958

alanedwardes commented 10 years ago

I haven't looked at this in a while, and I've only tested it with Source 2007, but these errors are because defintions in the Windows API headers are clashing with defintions in Valve's code.

It might be to do with the fact that you're including the file that contains the Awesomium control after the other headers in vgui_init.cpp, so the Windows API headers are getting loaded again and trying to re-define stuff.

I'm not actively maintaining this code anymore as it was meant for the Source SDK Base 2007. I should have used externals to split up the game code and Awesomium code so the includes didn't clash, but I didn't get around to that.

It's a side point, and you may be aware of this, but just in case you're not: there's a fully-fledged Chromium Embedded Framework (WebKit) implementation in the Source SDK 2013 - it supports CSS3, WebM video and HTML5 features via the vgui::HTML control. I'm using it in Estranged, and switched to it as soon as 2013 came out over using Awesomium. It works cross-platform, and out of the box :)