I've been interested in this project lately.
I have an old legacy project made in VC6, which I hear is a great IDE but doesn't run smoothly on my machine. I also don't know how to work with it. A full blown move to a 2010/12 project is a big time spent so I wonder:
Can someone share some basic information on how to use this tool? I've been searching a lot and couldn't find anything more comprehensive than the site.
Which specific old VC6 tools do I need to make sure to have working for Daffodil? (compiler, linker, etc) where are they located on the installed machine?
To build your project in VS 2010:
Make sure the VC 6 build tools are installed and working.
Make sure VS 2010 and Daffodil are installed and working.
Open your VS 6 workspace in VS 2010.
A. In Explorer, right-click on your VS 6 workspace (*.dsw) file.
B. Choose Open With -> Microsoft Visual Studio 2010.
C. Perform the migration when prompted.
Change the Platform Toolset to v60.
A. Right click on the project(s) and select Properties.
B. On the General page, set Platform Toolset to v60.
Build.
A quick read tells me that the concept of "Daffodil" is to use the VC6 compiler with the VS2010 IDE. Therefore, you wouldn't run VS6 on your machine. You just need the VC6 compiler and linker.
Start by letting Vs2012 migrate the project and see what doesn't work properly. The newer compilers are much better -once you've gone through the pain of the conversion.
Related
I ran into the rare situation that I have to use static libraries in a project which were compiled with Visual Studio 2005.
As I do not want to get into trouble at runtime as mentioned in this post or here,
I think it's reasonable to use the original toolset.
As far as I have seen, using toolsets down to VS2008 is straightforward. For VS2005 this seems to be more challenging, only Daffodil might be an option.
Is there any chance to get the toolset v80 (VS2005) into the dropdown menu of VS2019 ?
After playing around, I don't know exactly understand how daffodil works or how a feasible approach looks like.
Maybe one could create wrapper-DLLs with a plain C-API and the help of VS2005. Using one IDE with various toolsets feels advantageously to me.
Daffodil works only in earlier versions of Visual Studio 2012/2013/2015.
For using daffodils, check out the related thread: How to move old VC6 project to VS2010 using Daffodil.
To build your project in VS 2010:
Make sure the VC 6 build tools are installed and working. Make sure VS
2010 and Daffodil are installed and working. Open your VS 6 workspace
in VS 2010. A. In Explorer, right-click on your VS 6 workspace (*.dsw)
file. B. Choose Open With -> Microsoft Visual Studio 2010. C. Perform
the migration when prompted. Change the Platform Toolset to v60. A.
Right click on the project(s) and select Properties. B. On the General
page, set Platform Toolset to v60. Build.
I wonder if anybody has experience converting VS 2008 C++ solution to VS 2017/19 without switching to newer SDK and toolset. The solution is quite old, very large, uses 3-rd party libraries, so full conversion is out of the question. The goal is only to switch to better user interface.
Theoretically it is probably possible, although I successfully converted only very basic C++ MFC project.
Project settings in VS 2017 show only latest toolset. To make other toolsets to appear, I had to install VS 2010, and also add SDK 8.1 from VS installer (without VS 2010, this option is not available). Then select toolset v.90 and SDK 8.1 for each project in solution.
At this point, simple converted project works fine. A large legacy solution has a lots of issues. I resolved generic ones, but it looks like uphill battle. For example, C++ directories are physically different and some of the files are missing. It may be possible to eventually assign original VS 2008 directories to each project and/or copy missing files, but I have the impression of doing something illegal.
The question is, is it a valid procedure and still possible after latest updates.
Thanks==
So i'm fairly new to VS and coding and I've recently made a small snake game in a C++ console application project, which works fine but i would like to get it to work on another PC without VS. The closest i have found to answering my question were these other StackOverflow questions here and here. i have installed the vs installer projects extension to try make it a setup project and include the required dependencies but i cant work out how to do this. Does anyone have any info to guide me through my last step of this problem or am i completely on the wrong track?
If the application uses dynamic runtime (which is the default), it uses the VS DLL files. To provide them, the Visual Studio Runtime Redistributable for that particular VS version needs to be installed on the target machine (as mentioned in your second link).
So that means you need to setup the installer that way. I didn't use it, but there might be some options that the resulting setup can either contain or download and install the VS redistributable automatically.
See also here: How to install redistributable with visual studio setup? (but it is for VS 2013, there might be some changes in 2015)
Well, you don't tell us what kind of project your C++ console app is...
Using only C++, your app can be built with different versions of the CRT, like for instance:
V120 (VS-2013)
V120_XP (VS-2013 w/ XP support)
V140 (VS-2015)
V140_XP (VS-2015 w/ XP support)
Even on VS 2015, you can choose the version of the CRT you want, and use an older version, if needed.
Anyway, the target computer will need the DLLs for the correct CRT version.
Microsoft provides them. You can either ship them with your product, if you have a custom installer, or use the installer provided by Microsoft.
MSDN - Determining Which DLLs to Redistribute
For instance, using V120:
msvcp120.dll
msvcr120.dll
Your project might also use .NET.
In such a case, you also need to install the correct version in the host machine.
I am facing problem, I want to write c++ code in visual studio 2015, but I can't create c++ project because there is no c++ template in the New Project window.
I am creating new project in this way
File > New > Project > Visual C++
but there is no c++ template. Please help
The VS2015 installer does not install C++ by default.
Since you already have Visual Studio installed, you can modify the existing install.
On Control Panel->Programs and Features (or run appwiz.cpl) find and run the Installer for Visual Studio 2015.
Wait for Installer dialog to load.
Click the Modify button on the bottom of the installer dialog.
On the Features Tab, expand Programming Languages.
Select Visual C++.
Click the UPDATE button on the bottom right.
That should do it. You may have to insert the install media or suffer through a download, but these days Windows caches the installer info so everything needed may already be present on your system.
Go to the online menu (it's below Recent and Installed. There you'll be able to download C++ templates and samples. See this MSDN article which describes it in greater details.
While most users will be unblocked by the accepted solution, there is another scenario where Visual C++ is not working as intended for VS2015.
I was installing both VS2015 and VS2017 on the same system on the same day. Long story short, I got this person's problem.
From the link:
I am also running into this -- but in my case, I also installed full
VS2015 Pro. It shows that the VC++ common tools are installed, but
they are not on disk in the usual location, they seem to be in the
MSVS/Shared folder (Program Files (x86)/Microsoft Visual
Studio/Shared/14.0/VC/bin/cl.exe reports version 19.00.124218.2).
Uninstalling VS2015 removes these, and reinstalling puts them back in
Shared.
For me at least, it goes worse than just the batch files -- I can't
actually create any C++ projects. Trying to create one just causes the
"New Project" window to pop up again; no error, no warning.
No amount of uninstalling components from both 2015 or 2017 got me
into a usable state (Shared\14.0\VC still persisted as the install
dir, I couldn't find what component was keeping those tools on-disk
and preventing them from being removed). I ended up just copying the
contents of "Microsoft Visual Studio/Shared/14.0" into the "Microsoft
Visual Studio 14.0" folder -- a gross hammer, and VS2015 still can't
create C++ projects, but it got me unstuck, and existing build systems
started finding tools again.
VS team -- I totally get the goals of the layout change, and I love
what you guys are doing with VS overall. But please treat this as a
major bug; you can't decide to permanently change the location of
build tools that have been in one place for multiple years, as it will
break many, many existing build systems. At best, install them in both
locations; let VS2015 manage the "Visual Studio 14.0/VC" dir like it
always has, and let VS2017 manage the Shared/14.0 dir (via the "VS2015
C++ build tools" package). They should be unrelated.
Fix:
Uninstall all copies of Visual Studio
If you have frameworks that can install copies or partial copies of Visual Studio, or rely on them, consider uninstalling them too. For me, this was a couple versions of Qt.
Nuke C:\Windows\Temp and %temp%
Nuke anything visual studio related in C:\PROGRA~1,2,3, %appdata%, and %localappdata%
Reboot
Install the oldest version of Visual Studio you want to use first
Try to build a C++ Win32 console app with that version
If you can do that, you're unblocked. Otherwise, yikes! I don't know what to do next short of a full registry deep-dive keyword purge or a re-install of Windows. With an SSD, the latter is probably faster TBH.
I have a huge Visual Studio 2010 solution. I work with Visual Studio 2005, so I want to convert the solution to the desired version. Basically, it's a portable C++ code so it should compile on Visual Studio 2005 too. Changing the version in the *.sln file doesn't help because the *.vcxproj format is completely different from the old *.vcproj format.
Recreating the solution by hand is not an option because of its size. Also there may be some non-default compiler flags, dependencies, etc. that I don't know of (and I can't look through ALL this XML junk that I don't understand).
There is already a related question on How Do I Downgrade a C++ Visual Studio 2008 Project to 2005. However, the utility suggested there supports at most Visual Studio 2008.
Any suggestions?
It really totally sucks, that every proprietary IDE today thinks it needs to create its own project file format.
"Dear IDE developers, just use Makefiles and create a nice GUI for it so that also people without Makefile knowledge can use it!" In VS6 it was at least possible to import/export Makefiles, but not today anymore. And it was possible to use nmake for automated builds. No IDE needed to be installed, just the toolchain which could be grabbed by a simple checkout without installation.
I use CMake now. It's free, it's cross-platform, it is well supported in free IDEs like KDevelop, QtCreator, etc. It can generate Makefiles and Visual Studio projects.
So you maintain only one project source, the CMakeLists.txt file and can work with any IDE. No pain with different versions of Visual Studio or with other proprietary project file formats.
This way you can generate or VS projects for developing and you can generate Makefiles for commandline builds using nmake like in the good old days.
BTW, it's much easier to change settings in a CMakeLists.txt than clicking through various GUI dialogs. But this is a matter of personal preferences.
In my work made a utility which utilized the EnvDTE.dll and scanned a vcproj-file and optionally all vcproj-files within a sln-file. It compared all settings with a "template" and would issue a warning or optionally update the setting to correct values. We used this utility so that settings would be verified to be correct and consistent throughout all projects. I haven't updated the utility to 2010 yet due to other priorities.
EnvDTE hasn't changed much from Visual Studio 2008 to Visual Studio 2010. Perhaps it is possible to create a simple utility which opens the vcxproj-file using DTE100 and saves it using DTE90, or earlier.
Easiest way is probably to create a new project in VS 2005, and use the add existing item dialog to add the code to the project. I'd suggest using 'Empty Project' as the project type, so you don't have a lot of rubbish autogenerated for you that you'll just delete anyway.
I haven't tried it, but this looks promising:
http://www.emmet-gray.com/Articles/ProjectConverter.htm
edit: Nope, not promising, sorry :-(