Moving to Visual Studio 8

Discussion in 'Game Development (Technical)' started by Indiepath, Oct 26, 2007.

  1. Indiepath

    Indiepath New Member

    Joined:
    Aug 22, 2004
    Messages:
    999
    Likes Received:
    0
    I'm very happy with VS6 - it just works! I do feel it's time I migrate to VS8, what are the implications with regard to distributables? ie. Can I assume that the majority of users will be able to run the applications without having to download additional runtimes?
     
  2. Nikster

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    698
    Likes Received:
    0
    Depends on the libraries you link against, but normally it's only an issue with things like mfc and the like, I always statically link things which I can to avoid issues like "user doesn't have mcvrt1000293-1.dll" :)
     
  3. Backov

    Original Member

    Joined:
    Oct 23, 2005
    Messages:
    812
    Likes Received:
    0
    Your user has to have the msvc redistributables installed. It's a small installer, and they often have it - but even on new Vista laptops I have recently had to install it.

    You also can't properly statically link against them or just include them in the local dir - doesn't work and bad idea respectively. I should say that yes, you can statically link the MSVCRT stuff, but that screws up a lot of other stuff - like game engines.

    Anyway, VC8 adds a LOT over VC6, but that's the gotcha. It's an artifact of Windows new Side by Side DLL system, which is supposed to eliminate the DLL hell, and does a not bad job of it.
     
  4. Nikster

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    698
    Likes Received:
    0
    You confused me with the can't and can link business :D but which game engines would it screw up on ? I've yet to hit any problem with any 3rd party libraries when I've statically linked msvcrt.
     
  5. svero

    Moderator Original Member Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    3,392
    Likes Received:
    6
    I did this move pretty recently. Big disappointment for me. Can't say as I love the new IDE much. I'm hard pressed to think of any advantages from the switch. Macros are terrible. Compiler is slower. It's full of bugs. Keyboard customization is worse. You can't even add an icon to a c++ windows app and have it work properly. I'm really not terribly impressed overall. Unless you have some pressing need to switch or you're planning on writing managed code (c# etc...) I don't see the move as being that helpful. Like you I felt I was way behind and it was time to upgrade. One of the reasons I moved was to be able to use that xna stuff. I bought the standard package. XNA only works with the free package.

    IMHO msdev is all downhill since version 4.2 -- If this is what it takes microsoft 12 yrs or so to come up with they should just stop working on it and save everyone a lot of trouble. It's particularly disgusting when you consider that this is a development tool. You'd think the programmers working on this thing would have to also use it... Donno. I'm at a loss for an explanation really.
     
  6. jessechounard

    Original Member

    Joined:
    Apr 4, 2006
    Messages:
    70
    Likes Received:
    0
    The next version of XNA (which should be out by the end of the year) will support the full versions.

    I also had some disappointment with VC++ 2005, but it's because C# 2005 is so incredible. The code completion is worthless by comparison, and the refactoring tools in C# are incredibly useful.

    But still, there's no way I could go back to VC++ 6.0. The compiler was just far too broken. The IDE was really great, but I'd have to use mingw under the hood through makefiles or something.
     
  7. Backov

    Original Member

    Joined:
    Oct 23, 2005
    Messages:
    812
    Likes Received:
    0
    Ogre specifically in my case - but I assume any library where it's a "Multi-Threaded DLL" would screw up. Even though Ogre doesn't actually do any multi threading by default, it's built that way and if you statically link MSVCRT you break it.
     
  8. vjvj

    Indie Author

    Joined:
    Sep 25, 2004
    Messages:
    1,732
    Likes Received:
    0
    I like VC 2005 a lot. I statically link as well, and rebuild all the libraries I use in order to ensure that everything links up fine. However, I know one of these days I need to stop being a hack and look into that side-by-side stuff.

    The funniest part about 2005 is MS's decision to deprecate standard C functions. There's a flag to disable the warning; you'll probably want to use it :)
     
  9. Sharpfish

    Original Member

    Joined:
    Feb 25, 2005
    Messages:
    1,309
    Likes Received:
    0
    I went frome VC++6 to VC++2005, not had any major problems.

    I did like the 'simplicity' of VC6 and resisted upgrading until VC++ 2005 and my old compiler started to show it's age (couldn't get updates for it etc).

    The manifest/CLR thing appears more convoluted, but aside from that it's pretty much the same after tweaking, and it's not that slow on my system. The newer compiler was also supposed to produce faster .exe's if I recall but I never got around to A/Bing them so don't quote me.
     
  10. Jack Norton

    Indie Author

    Joined:
    Jul 28, 2004
    Messages:
    5,130
    Likes Received:
    0
    I never upgraded from VC6. With visual assist installed, has nothing missing. The IDE loads fast and doesn't require 1Gb of RAM of core duo just to open a window (ok I'm exaggerating but wtf, the new version are SO SLOOOOOW).
    Also break/edit/continue was never working for me on the new version and I use that option more often than compile :rolleyes:
     
  11. Indiepath

    Indiepath New Member

    Joined:
    Aug 22, 2004
    Messages:
    999
    Likes Received:
    0
    Hmmn, so you regret the upgrade?
     
  12. Jack Norton

    Indie Author

    Joined:
    Jul 28, 2004
    Messages:
    5,130
    Likes Received:
    0
    I didn't try the VC8, but the VC Express - so maybe is different, but honestly don't think by much...
     
  13. vjvj

    Indie Author

    Joined:
    Sep 25, 2004
    Messages:
    1,732
    Likes Received:
    0
    VC8 and Express are pretty similar from my experience.
     
  14. Cygon

    Cygon New Member

    Joined:
    Nov 20, 2006
    Messages:
    65
    Likes Received:
    0
    I've been using VC++ 2005 Express for quite some time now and am very happy with it. Granted, the MSVC6 IDE was way more responsive, but its compiler was so hopelessly outdated that it became really troublesome getting libraries like Boost or LuaBind to work.

    If you statically link the C runtime, you will only have problems if you're using DLLs. Specifically, each DLL will have its own copy of the C runtime and thus, have its own heap. So if you allocate memory in a .dll and try to free it in the .exe, it will fail (and display that ugly assertion message in debug mode).

    On another note, there are two versions of the VC++ 2005 runtime actually:
    8.0.50727.42 from VC++ 2005 and 8.0.50727.762 from VC++ 2005 SP1. The newer SP1 runtime seems to be missing on most systems.

    -Markus-
     
  15. AlexN

    Original Member

    Joined:
    Jun 25, 2005
    Messages:
    210
    Likes Received:
    0

    Oh yeah, I almost forgot this, the 8.0.50727.762 runtime is in the redist folder though, so if you put that next to the executable file, it should run.
     
  16. lennard

    Moderator Original Member Indie Author

    Joined:
    Jan 12, 2006
    Messages:
    2,390
    Likes Received:
    12
    I switched to 2005 last year because I needed a library that comes with the new compiler. I finished Real E$tate Empire and then switched back for my current project - very happy, far more productive. Can't believe how screwed up the new IDE is. Brief is unusable (huge for me), the help system is horrible and recompile on the fly is mostly broken. Unbelievable that this was released.

    The library I needed was for finding the user data directory under Vista - I'm now using this code (cobbled together from stuff I found on the internet) - feel free to use it, let me know if you find problems:




    #include <stdio.h>
    #include <stdlib.h>

    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #include <windowsx.h>
    #include <winuser.h>
    #include <commdlg.h>
    #include <sys/types.h>
    #include <sys/stat.h>

    #include "userDir.h"

    typedef HMODULE (__stdcall *SHGETFOLDERPATH)(HWND, int, HANDLE, DWORD, LPTSTR);
    #define CSIDL_PROGRAM_FILES 38
    #define CSIDL_PERSONAL 0x0005 // My Documents
    #define CSIDL_FLAG_CREATE 0x8000 // new for Win2K, or this in to force creation of folder

    char szPath[MAX_PATH];

    char *getUserDir()
    {
    if( !szPath[0] )
    {
    HMODULE hModule = LoadLibrary("SHFOLDER.DLL");
    if (hModule != NULL)
    {
    SHGETFOLDERPATH fnShGetFolderPath = (SHGETFOLDERPATH)GetProcAddress(hModule, "SHGetFolderPathA");

    if (fnShGetFolderPath != NULL)
    {
    fnShGetFolderPath( NULL,
    CSIDL_PERSONAL|CSIDL_FLAG_CREATE,
    NULL,
    0,
    szPath
    );
    }
    FreeLibrary(hModule);
    }
    }

    if( szPath[0] )
    return szPath;
    else return "c:\\";
    }
     
  17. Indiepath

    Indiepath New Member

    Joined:
    Aug 22, 2004
    Messages:
    999
    Likes Received:
    0
    Hmmn, Vista is another kettle of fish VS6 or whatever. On another note does anyone know how I can run my shell extension (context menu item) with elevated privaliges (vista).
     
  18. GolfHacker

    GolfHacker Member

    Joined:
    Oct 4, 2006
    Messages:
    1,073
    Likes Received:
    0
    Flashy and new isn't always better. I'm a firm believer in the old adage, "If it ain't broke, don't fix it". I've been using VS 2003 for four years, and it works fine for me. My games use C/C++ with Win32/DirectX or SDL/OpenGL. The IDE still works, the debugger still debugs, the compiler still compiles, and my executables still run fine, even on Vista. I see no reason to upgrade.

    Indiepath, if you're happy with VS6, I say don't waste your money. Stick with something you're comfortable with that's already paid for.
     
  19. Jack Norton

    Indie Author

    Joined:
    Jul 28, 2004
    Messages:
    5,130
    Likes Received:
    0
    For me VC6 + Visual Assist X beats any other compiler I've tried... ultra fast and with all the tooltip / code completion / browse info that you can find on the new version (but still very fast compared to them).
     
  20. vjvj

    Indie Author

    Joined:
    Sep 25, 2004
    Messages:
    1,732
    Likes Received:
    0
    Funny how opinions vary so greatly on this subject.

    I loved VC 6.0 but had to ditch it to support DX8 for Meridian. I hated 2003, but (as stated above) upgraded to 2005 and like it quite a bit.
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer