In net.cpp there is a MapPort method. This method is compiled only when the USE_UPNP is defined BUT in various places it's called without checking for USE_UPNP (in net.cpp in method StartNode around line 1699 and in ui.cpp in method OnButtonApply around line 1784). The VC++ doesn't like it.
Three things can be done:
- delete the USE_UPNP define and always compile the code (but this could have problems for systems without the library)
- protect the two calls with #ifdef
- put an #else in net.cpp and define an empty MapPort that does nothing.