There are several issues when I was trying to compile bochs under MSVC 2012.
Source: SVN 11891
Platform: Windows 8 Pro 64
Build System: MinGW/MSYS (for running configuration script), Microsoft Visual Studio 2012 x64 Native Tools (for actual compilation). Compile using the NMAKE method.
1: MSVC standard library becomes angry when it detects some C++ keyword was overwritten. This happened because the auto generated config.h has a
#define inline __forceinline directive that maps "inline" to a compiler-specific keyword so plain C file can use it. But when Compiling under C++ mode, the standard library issued an
xkeycheck.h(242): fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.
As a workaround, surrounding this
#define with a
#ifndef __cplusplus block can help.
2: When compiling
bximage_new.cc, compile error occurred because
<winioctl.h> was directly included but some win32 types such as BYTE, DWORD are not defined. I can't figure out what headers are exactly necessary, so I just tried
#include <windows.h> and it seems work.
3: Plugin system doesn't work. When plugins are enabled, bochs will PANIC because it cannot load necessary module. Those module are in fact not build.
There is one more problem that makes bochs crash when simulation starts, but I just caught it randomly with release build. When I tried to build a debug version and figure out where this crash come from, I got no luck. (sigh)