SOLVED: Windows 7 Compilation Errors

Should be noted I modified my makepanda.bat to add:
call “C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\VSVARS32.bat”
So the code will compile on my x64 system.

pastebin

C:\Dev - Keith\Panda3d>build_installer.bat

C:\Dev - Keith\Panda3d>makepanda\makepanda.bat --everything --installer
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
Windows 7 SDK detected. Enabling special features (multi-touch).
WARNING: Could not locate thirdparty package awesomium, excluding from build
WARNING: Could not locate thirdparty package fltk, excluding from build
WARNING: Could not locate thirdparty package bullet, excluding from build
WARNING: Could not locate thirdparty package bullet, excluding from build
WARNING: Could not locate thirdparty package bullet, excluding from build
WARNING: Could not locate thirdparty package bullet, excluding from build
WARNING: Could not locate thirdparty package bullet, excluding from build
Generating library cache...
Generating dependencies...
[ 40%] Building C++ object built/tmp/windisplay_composite.obj
windisplay_composite.cxx
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.h(198) : error C21
46: syntax error : missing ';' before identifier '_touches'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.h(198) : error C44
30: missing type specifier - int assumed. Note: C++ does not support default-int

c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.h(198) : error C44
30: missing type specifier - int assumed. Note: C++ does not support default-int

c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(497) : error C
3861: 'RegisterTouchWindow': identifier not found
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2102) : error
C2065: 'WM_TOUCH' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2102) : error
C2051: case expression not constant
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2106) : error
C2065: 'HTOUCHINPUT' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2106) : error
C2146: syntax error : missing ')' before identifier 'lparam'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2106) : error
C2059: syntax error : ')'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2107) : error
C2065: 'HTOUCHINPUT' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2107) : error
C2146: syntax error : missing ')' before identifier 'lparam'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2107) : error
C2059: syntax error : ')'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2106) : error
C3861: 'GetTouchInputInfo': identifier not found
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2107) : error
C3861: 'CloseTouchInputHandle': identifier not found
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2891) : error
C2065: 'WM_TOUCH' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2921) : error
C2065: 'TOUCHINPUT' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2921) : error
C2146: syntax error : missing ';' before identifier 'ti'
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2921) : error
C2065: 'ti' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2921) : error
C2065: '_touches' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2923) : error
C2065: 'ti' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2923) : error
C2228: left of '.x' must have class/struct/union
        type is ''unknown-type''
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2923) : error
C3861: 'TOUCH_COORD_TO_PIXEL': identifier not found
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2924) : error
C2065: 'ti' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2924) : error
C2228: left of '.y' must have class/struct/union
        type is ''unknown-type''
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2924) : error
C3861: 'TOUCH_COORD_TO_PIXEL': identifier not found
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2930) : error
C2065: 'ti' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2930) : error
C2228: left of '.dwID' must have class/struct/union
        type is ''unknown-type''
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2931) : error
C2065: 'ti' : undeclared identifier
c:\dev - keith\panda3d\panda\src\windisplay\winGraphicsWindow.cxx(2931) : error
C2228: left of '.dwFlags' must have class/struct/union
        type is ''unknown-type''
Storing dependency cache.
Elapsed Time: 11 sec

Build terminated.

C:\Dev - Keith\Panda3d>

Seems related to having the Windows 7 SDK installed.

Solution:

makepanda/makepanda.py

Line(s): 775-776

def CompileCxx(obj,src,opts)
  ...
        if platsdk and os.path.isdir(platsdk) and winver[0] >= 6 and winver[1] >= 1:
            cmd += "/DPANDA_WIN7 /DWINVER=0x601 "

Comment out or delete these two lines so it won’t use the windows 7 sdk code.