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 ) 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.
Visual Studio Express 2012 Yay
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 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.
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 ??
[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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement