Therefore I first need to compile the Steem source using my development environment. I am using Visual Studio 2010 Ultimate and therefore I have tried to compile with this environment.
I have first used the original Steem code that I have got from the Steven Segal site. There were so many problems that I have immediately given up and tried the source 3.3 from Steven.
It is much better but it still does not compile.
As mentioned by Steven in another thread, the fact that the cpp sources are included from 3 “central” files is rather unusual and therefore it is not obvious to know what is compiled and browsing sources from the solution explorer is not really easy
What I had to change in order to compile:
In conditions.h close to line 270+ there is a conditional define of ASMCALL to __cdecl if WIN32 is defined. Later this is used in source like this:
- Code: Select all
extern "C" ASMCALL void m68k_trace()
This translate to
- Code: Select all
extern "C" __cdecl void m68k_trace()
and this does not make sense ? as it should be either
- Code: Select all
extern "C" void __cdecl m68k_trace()
or
extern "C" void m68k_trace()
__cdecl is the default calling convention in C and C++
Therefore I ALWAYS define ASMCALL as nothing.
In mymisc.cpp on line 64 we have
if (n>0) val*=(unsigned long)pow(16,n);
this is an ambiguous call
- Code: Select all
1>m:\atari\steem\_source\segalsource\include\mymisc.cpp(65): error C2668: 'pow' : ambiguous call to overloaded function
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): could be 'long double pow(long double,int)'
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): or 'float pow(float,int)'
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): or 'double pow(double,int)'
1> while trying to match the argument list '(int, int)'
This can easily be fixed with
- Code: Select all
if (n>0) val*=(unsigned long)pow(16.0,n);
Having done this modification allow to compile and generate the four object files.
However the link fails!
If I look at the configuration property the linker is specified to use:
- Code: Select all
"kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "dinput.lib" "dxguid.lib" "winmm.lib" "ComCtl32.Lib"
Most of these libraries can be found in:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
But the following lib are missing: Dinput.lib, dxguid.lib
Google seems to indicate that these libs are coming from DirectX SDK and not from Windows SDK. So I have downloaded the latest SDK from: http://www.microsoft.com/download/en/de ... px?id=6812
and installed it.
The SDK contains the dxguid.lib file but not the dinput.lib? However there is a dinput8.lib is this equivalent ???
I have replaced the dinput.lib with dinput8.lib
Now the linker complains about:
- Code: Select all
1>LINK : fatal error LNK1104: cannot open file '..\..\steem\asm\asm_draw_VC.obj'
This seems to come from the fact that it is specified in the solution browser in a directory called “Object files” with 3 files defined but nothing on the real file system?
I am stuck here any help is welcome
Anyone with a working build using Visual Studio 2010 Ultimate ?




but it works (or seems to work) for _DEBUG_BUILD on/off and STEVEN_SEAGAL on/off with VC++ 2010
