Visual Studio Express 2012 Yay

Started by
56 comments, last by Ryan_001 11 years, 4 months ago
Well I've been messing with VS2012 in Windows 7 all weekend. My main project is officially upgraded and I really like it. (Still have the old project for XP builds for now though).
- Upgrading from 2008 project was absolutely painless. A couple issues like using std::set iterators as being mutable (oops), but these were very easy to fix.
- Auto-vectorization is nice and applies itself all over the place.
- Auto-parallelization (sp?) not so much - but its requirements are much stricter. To counter, there is a super quick and easy pragma that parallelizes (SP?) practically any loop without openmp
- Adding a 64-bit build was also quite painless

Also installed Windows 8 release preview (no msdn so no RTM here)
- Dual booting with Win7 no problem.
- Not intentionally going against the grain, but as an everything-OS, I actually like it a lot.
- Installed VS2012 RC (need Win8 RTM for the official release sad.png ) for Win8 Release Preview as well, and so far so good. It built me a demo D3D11 metro app out of the box no problem.

I honestly feel they've done a fantastic job so far.
Advertisement
Why does the VS express registration system keep requiring me to provide my "business" contact info when I've explicitly told the form that I'm a student and therefore those fields are meaningless? MS didn't require that I provide this info previously, why do they suddenly require it now? Also, I think the UI is ugly from what I've seen. All caps text in the menu bar, really now? Even QBasic had lower case letters in its menu bars.

I think I'll stick to VS 2010 until the interface doesn't scorch my eyes and the registration system doesn't ask me questions that don't apply to me.
I lack a link right now but there is a reg key you can set to fix the all caps menu items problem.

What is really a problem is that (until now) applications compiled with VS2012 do not run on WinXP! Yes... WinXP is old and should not be supported anymore. I agree with that.

I don't. But thanks for the informative link - good to know it might be possible to target XP in the future (required bottom line for me).
Now there's a pretty bad case of upgrading an old VS2008 project into VS2012.

I sense a magnificant bastard in me wanted to go look at all of the errors and just comment them out. I see errors, yet I do not know how to fix them.

Java has taken a big toll on my C++, then again, other than the basic C++ programming syntax, rememorizing the Standard Libraries is going to become a new daunting task for me.

Now there's a pretty bad case of upgrading an old VS2008 project into VS2012.

The main ones I ran into were in regards to the c++ std lib. Mostly namespace issues since a lot of stuff moved from std::tr1 to just std. But I also had most of that typedef'd in a single file so it was very easy to fix the whole program. There's not really that many breaking changes - if you post a few of your errors maybe I or someone else can help and you'll see a pattern?

Don't forget most of the time fixing the first error fixes many, many errors following it because they are actually a result of the first.

The main ones I ran into were in regards to the c++ std lib. Mostly namespace issues since a lot of stuff moved from std::tr1 to just std. But I also had most of that typedef'd in a single file so it was very easy to fix the whole program. There's not really that many breaking changes - if you post a few of your errors maybe I or someone else can help and you'll see a pattern?



As you say, master.

[source lang="plain"]1>------ Build started: Project: VGMTrans, Configuration: Debug Win32 ------
1>mainfrm.obj : error LNK2019: unresolved external symbol "long __cdecl ATL::AtlGetCommCtrlVersion(unsigned long *,unsigned long *)" (?AtlGetCommCtrlVersion@ATL@@YAJPAK0@Z) referenced in function "bool __cdecl WTL::RunTimeHelper::IsCommCtrl6(void)" (?IsCommCtrl6@RunTimeHelper@WTL@@YA_NXZ)
1>C3DSegment.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicSegment8
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicSegment8
1>CSegment.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicSegment8
1>CAPathPerformance.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicGraph
1>CPortPerformance.obj : error LNK2019: unresolved external symbol _IID_IDirectMusicGraph referenced in function "public: long __thiscall directmidi::CPortPerformance::AddPortW(class directmidi::COutputPort &,unsigned long,unsigned long)" (?AddPortW@CPortPerformance@directmidi@@QAEJAAVCOutputPort@2@KK@Z)
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicSegment
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicLoader
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _GUID_DirectMusicAllTypes
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _GUID_StandardMIDIFile
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _GUID_DefaultGMCollection
1>CDLSLoader.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicLoader8
1>CDMusicException.obj : error LNK2019: unresolved external symbol _DXGetErrorString9W@4 referenced in function "protected: void __thiscall directmidi::CDMusicException::ObtainErrorString(void)" (?ObtainErrorString@CDMusicException@directmidi@@IAEXXZ)
1>CDMusicException.obj : error LNK2019: unresolved external symbol _DXGetErrorDescription9W@4 referenced in function "protected: void __thiscall directmidi::CDMusicException::ObtainErrorString(void)" (?ObtainErrorString@CDMusicException@directmidi@@IAEXXZ)
1>CPerformance.obj : error LNK2001: unresolved external symbol _CLSID_DirectMusicPerformance
1>CPerformance.obj : error LNK2001: unresolved external symbol _GUID_PerfMasterTempo
1>CPerformance.obj : error LNK2001: unresolved external symbol _GUID_PerfMasterVolume
1>CPerformance.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicPerformance8
1>CPerformance.obj : error LNK2001: unresolved external symbol _IID_IDirectMusicSegmentState8
1>CSegment.obj : error LNK2001: unresolved external symbol _GUID_ConnectToDLSCollection
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(char const *,unsigned int)" (?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: __thiscall std::_Mutex::~_Mutex(void)" (??1_Mutex@std@@QAE@XZ) referenced in function "public: virtual __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2001: unresolved external symbol "long const std::_BADOFF" (?_BADOFF@std@@3JB)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,unsigned int)" (?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (?_Init@locale@std@@CAPAV_Locimp@12@XZ) referenced in function "public: __thiscall std::locale::locale(void)" (??0locale@std@@QAE@XZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: __thiscall std::_Mutex::_Mutex(void)" (??0_Mutex@std@@QAE@XZ) referenced in function "protected: __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) referenced in function "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) referenced in function "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z) referenced in function "public: void __thiscall std::locale::facet::_Register(void)" (?_Register@facet@locale@std@@QAEXXZ)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z)
1>tinyxmld_STL.lib(tinyxml.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) referenced in function "public: __thiscall std::_Locinfo::_Locinfo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0_Locinfo@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z)
1>tinyxmld_STL.lib(tinyxmlparser.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z)
1>.\Debug/VGMTrans.exe : fatal error LNK1120: 27 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
[/source]

The very first LNK error happens to be a legacy breaking piece of code Microsoft did for the ATL. Apparently, one of a bigger (and complicated) project I have rely on this, so it's kind of hard to fix without knowing a lot of stuffs.

I think LNK errors and whatnots are the main reasons I became more biased with Java than C++ back in 2009 ~ 2010. I felt Java has just 1 centralized libary, instead of having so many different SDK with includes and libs.
For tinyxml, the problem is probably that tinyxmld_STL.lib was built using VS2008. You need to rebuild the lib with 2012, or just add the cpp/h files to your project.

[edit] See your atl thread for the solution there.
[edit2] Not sure about direct music. At least it's just a link problem. Are you linking dxguid.lib ??
And yes, I was about to say that I had just started reading your post. So, this is what they meant by LIB files built with older compiler cannot work with newer compilers? I now have something to do.

I lack a link right now but there is a reg key you can set to fix the all caps menu items problem.

It's in a more than a couple places now, but here's one place.

This topic is closed to new replies.

Advertisement