Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Upgrading an old VC application

Upgrading an old VC application

Scheduled Pinned Locked Moved The Lounge
c++csharptoolsquestiondiscussion
27 Posts 14 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Stuart Dootson

    You're likely to find some issues because you're moving from pre-98 Standard C++ to C++ 11(ish) if you're going to migrate to VS2013... I started developing a project with VC6 back in 2001/2 that I've maintained ever since. It moved to VS2003 in 2005, VS2008 in 2010, VS2010 in 2012 and to VS2013 in the last month. I had the most problems moving from VC6 to VS2003, but after that, VS2010 to VS2013 had the most issues, all due to improved C++ standards compliance. Oh - and some deprecated Platform SDK / C runtime functions - but those deprecation warnings can be turned off with macros (or you can modify your code to conform with the warnings, of course). However...take a copy of the project. Open it in VS2013. Rebuild. Fix compile errors. Rinse & repeat... Just do it, I suspect it'll be easier than you might think.

    Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p CodeProject MVP for 2010 - who'd'a thunk it!

    D Offline
    D Offline
    Dan Neely
    wrote on last edited by
    #18

    Jump directly to the latest? I was thinking in terms of walking up my collection of installed versions of VS incrementally upgrading as I go: 03, 08, 10; newer'd depend on either customer requests or getting past team mates balking at 12 as a 1.0 version and not wanting to install 13 because without a need for it keeping R#er while avoiding a fight with bean counters (not relevant for C++) and just not wanting to install another version that will then become part of the stack we need to keep installed forever more due to legacy apps we're on call for but otherwise have no update budget/mandate (this one really bugs me too). :sigh: Edit: A big part of why I'm thinking incrementally is that, assuming it's a VC6 (or prior) project and that none of my packratty coworkers have an MSDN cd with that version on it, initially targetting 2003 would be the quickest path to a working build.

    Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

    P S 2 Replies Last reply
    0
    • B basementman

      You probably will need to add _CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS; to your preprocessor defs to get it to compile without warnings.

      onwards and upwards...

      D Offline
      D Offline
      Dan Neely
      wrote on last edited by
      #19

      Are those actually fixing anything; or are they just rollups for disabling a bunch of warnings to greenwash the compiler output?

      Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

      B 1 Reply Last reply
      0
      • D Dan Neely

        Are those actually fixing anything; or are they just rollups for disabling a bunch of warnings to greenwash the compiler output?

        Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

        B Offline
        B Offline
        basementman
        wrote on last edited by
        #20

        Disables warnings for "non-secure" functions such as strcpy, strcat, sprintf, etc. that have been "deprecated" due to the MS secure initiative, pushing people to strcat_s that is length validated to help prevent buffer overflows. These didn't exist in VC6.

        onwards and upwards...

        D 1 Reply Last reply
        0
        • B basementman

          Disables warnings for "non-secure" functions such as strcpy, strcat, sprintf, etc. that have been "deprecated" due to the MS secure initiative, pushing people to strcat_s that is length validated to help prevent buffer overflows. These didn't exist in VC6.

          onwards and upwards...

          D Offline
          D Offline
          Dan Neely
          wrote on last edited by
          #21

          Assuming we end up on contract for anything beyond a minimal make it run on w7 update I suspect making those substitutions will be an IA requirement we'll be expected to meet.

          Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

          1 Reply Last reply
          0
          • D Dan Neely

            Jump directly to the latest? I was thinking in terms of walking up my collection of installed versions of VS incrementally upgrading as I go: 03, 08, 10; newer'd depend on either customer requests or getting past team mates balking at 12 as a 1.0 version and not wanting to install 13 because without a need for it keeping R#er while avoiding a fight with bean counters (not relevant for C++) and just not wanting to install another version that will then become part of the stack we need to keep installed forever more due to legacy apps we're on call for but otherwise have no update budget/mandate (this one really bugs me too). :sigh: Edit: A big part of why I'm thinking incrementally is that, assuming it's a VC6 (or prior) project and that none of my packratty coworkers have an MSDN cd with that version on it, initially targetting 2003 would be the quickest path to a working build.

            Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

            P Offline
            P Offline
            patbob
            wrote on last edited by
            #22

            Dan Neely wrote:

            Jump directly to the latest? I was thinking in terms of walking up my collection of installed versions of VS incrementally upgrading as I go: 03, 08, 10;

            Each version will introduce its own set of things that needs to be fixed. Having worked on a VC++ project that we took from 6.0 through to 2008 through the years, my gut feel is that your way will create extra work. The source isn't the only thing that needs updating, sometimes the project files do too. The only benefit I can see of doing an incremental upgrade is if you also install the docs and can get some value out of their upgrade guides. Those have had helpful hints like the #define mentioned. I think sometimes the older info gets lost in newer rewrites.

            We can program with only 1's, but if all you've got are zeros, you've got nothing.

            1 Reply Last reply
            0
            • D Dan Neely

              Jump directly to the latest? I was thinking in terms of walking up my collection of installed versions of VS incrementally upgrading as I go: 03, 08, 10; newer'd depend on either customer requests or getting past team mates balking at 12 as a 1.0 version and not wanting to install 13 because without a need for it keeping R#er while avoiding a fight with bean counters (not relevant for C++) and just not wanting to install another version that will then become part of the stack we need to keep installed forever more due to legacy apps we're on call for but otherwise have no update budget/mandate (this one really bugs me too). :sigh: Edit: A big part of why I'm thinking incrementally is that, assuming it's a VC6 (or prior) project and that none of my packratty coworkers have an MSDN cd with that version on it, initially targetting 2003 would be the quickest path to a working build.

              Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

              S Offline
              S Offline
              Stuart Dootson
              wrote on last edited by
              #23

              I'd be tempted to go straight to your ultimate target version (whether that be VS2010, 2012 or 2013) with a **COPY** of the solution. If you find any really difficult problems, then you could try going via intermediate versions in the hope that the errors along the way will be lesser.

              Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p CodeProject MVP for 2010 - who'd'a thunk it!

              D 1 Reply Last reply
              0
              • S Stuart Dootson

                I'd be tempted to go straight to your ultimate target version (whether that be VS2010, 2012 or 2013) with a **COPY** of the solution. If you find any really difficult problems, then you could try going via intermediate versions in the hope that the errors along the way will be lesser.

                Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p CodeProject MVP for 2010 - who'd'a thunk it!

                D Offline
                D Offline
                Dan Neely
                wrote on last edited by
                #24

                Source control means having arbitrarily many copies. :cool:

                Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

                1 Reply Last reply
                0
                • R Ravi Bhavnani

                  One thing that's prevented me from using anything more modern than VC6 for this[^] app is my reliance on CString, whose size increased over the years.  Rather than fight this, I decided to convert the app to .NET in its next incarnation. Also see this[^] MSDN link for additional data points. /ravi

                  My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                  M Offline
                  M Offline
                  Member 4608898
                  wrote on last edited by
                  #25

                  If it was passed by reference instead of by value, the code works seamlessly. What I find is a lot of the VC6 code normally pass CStrings by value.

                  R 1 Reply Last reply
                  0
                  • M Member 4608898

                    If it was passed by reference instead of by value, the code works seamlessly. What I find is a lot of the VC6 code normally pass CStrings by value.

                    R Offline
                    R Offline
                    Ravi Bhavnani
                    wrote on last edited by
                    #26

                    I was referring to serialization of CString breaking between VC6 and VS2005+. /ravi

                    My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                    1 Reply Last reply
                    0
                    • D Dan Neely

                      Mike Mullikin wrote:

                      If it comes to pass you should consider an article for CP.

                      I suspect work related NDAs would scuttle any hope of a useful article unless I scoured the internet to find someone elses VC6 legacy project I could use as an example in a writeup. :sigh:

                      Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

                      F Offline
                      F Offline
                      fatman45
                      wrote on last edited by
                      #27

                      If it's VC6 then it is unlikely that it is a 16-bit app. VC4 on is 32-bit. As pointed out by others, your biggest problem is likely to be 3rd party libs.

                      Da Bomb

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups