Author Topic: Help with updating windows orbiter to VS2008  (Read 4374 times)

gadget

  • Veteran
  • ***
  • Posts: 136
    • View Profile
Help with updating windows orbiter to VS2008
« on: October 16, 2009, 11:28:06 pm »
I have managed to get the orbiter to partly compile in VS2008 but am now getting the following error.

Code: [Select]
Compiling...
PlutoPhoneCommands.cpp
OrbiterApp.cpp
_CE_ACTIVEX was not defined because this Windows CE SDK does not have DCOM.
 _CE_ACTIVEX could be caused to be defined by defining _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA, but it is recommended that this be done only for single-threaded apps.
_ATL_NO_HOSTING was defined because _CE_ACTIVEX was not defined.
c:\pluto\trunk\src\orbiter\cenet_smartphone\LRMenu.h(147) : error C2143: syntax error : missing ';' before '*'

I have also updated from STLport4.5.3 to STLport5.2.1

I am new to C++ and suspect that something with the STport upgrade requires a compiler flag to solve the issue.

If i can get this to finish compiling I believe i should be able to target the newer mobile platforms as well.

gadget

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Help with updating windows orbiter to VS2008
« Reply #1 on: October 17, 2009, 01:24:36 am »
Something in the error message indicates that DisplayDevice is not defined. A quick grep indicates this comes from PocketFrog, and further investigation indicates that this data structure is no longer available like this, so something else will need to be done.

No, i don't have anything else to add.

-Thom

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Help with updating windows orbiter to VS2008
« Reply #2 on: October 17, 2009, 01:26:17 am »
you may want check your compiler defines:

Code: [Select]

#if defined(_VC80_UPGRADE)              //--- CHANGED4WM5 ----//
        #define DisplayDevice Display
#else
        using namespace Frog::Internal;
#endif


-Thom

gadget

  • Veteran
  • ***
  • Posts: 136
    • View Profile
Re: Help with updating windows orbiter to VS2008
« Reply #3 on: October 19, 2009, 12:03:48 pm »
I am having an issue with sge in CrossPlatform\sge030809-w32\sge-msvc\sge\VisualC library not compiling now. I have load VS2005 and get the same error, do i need to go back even further to VS2003 which is what the projects were created in.
Code: [Select]
sge_rotation.cpp
c:\pluto\trunk\libs\crossplatform\sge030809-w32\src\sge_rotation.cpp(325) : error C2668: 'pow' : ambiguous call to overloaded function
        c:\program files\microsoft visual studio 8\vc\include\math.h(575): could be 'long double pow(long double,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(573): or 'long double pow(long double,long double)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(527): or 'float pow(float,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(525): or 'float pow(float,float)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(489): or 'double pow(double,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(123): or 'double pow(double,double)'
        while trying to match the argument list '(int, unsigned int)'
c:\pluto\trunk\libs\crossplatform\sge030809-w32\src\sge_rotation.cpp(325) : error C2514: 'Sint32' : class has no constructors
        c:\pluto\trunk\libs\crossplatform\sdl-1.2.7\include\sdl_types.h(46) : see declaration of 'Sint32'
c:\pluto\trunk\libs\crossplatform\sge030809-w32\src\sge_rotation.cpp(426) : error C2668: 'pow' : ambiguous call to overloaded function
        c:\program files\microsoft visual studio 8\vc\include\math.h(575): could be 'long double pow(long double,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(573): or 'long double pow(long double,long double)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(527): or 'float pow(float,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(525): or 'float pow(float,float)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(489): or 'double pow(double,int)'
        c:\program files\microsoft visual studio 8\vc\include\math.h(123): or 'double pow(double,double)'
        while trying to match the argument list '(int, unsigned int)'
c:\pluto\trunk\libs\crossplatform\sge030809-w32\src\sge_rotation.cpp(426) : error C2514: 'Sint32' : class has no constructors
        c:\pluto\trunk\libs\crossplatform\sdl-1.2.7\include\sdl_types.h(46) : see declaration of 'Sint32'

I am building the libraries because i couldn't debug the windows orbiter after building it. It looked like one of the libraries required a version of  MSCV70d.dll. Anyway I have learnt a lot about building C++ apps.





gadget

  • Veteran
  • ***
  • Posts: 136
    • View Profile
Re: Help with updating windows orbiter to VS2008
« Reply #4 on: October 19, 2009, 02:15:47 pm »
In the Orbiter src directory there are seems to be 3 windows folders for the Orbiter.

a. Orbiter
b. Orbiter\Win32
c. Orbiter\Win32_PocketFrog

There are already VS projects for a and c and nothing for b. 
I can successfully build a but cannot run/debug as it requires VSCP7.dll which is a VS2003 dll and i am working in 2005/2008.

Which is the obiter i need to be building.

gadget

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Help with updating windows orbiter to VS2008
« Reply #5 on: October 19, 2009, 02:17:31 pm »
There are two win32 targets for Orbiter:

* the standard project, which builds against SDL
* the PocketFrog project, which builds against the PocketFrog library.

Both were done as an exercise for the Orbiter's abstraction layer, and show that Orbiter can be built to different toolkits.

MakeRelease will build the appropriate targets to bundle into packages.

-Thom