Anand Barnwal
Anand Barnwal

Reputation: 313

Seeing many compilation errors after upgrading my c++ project to VS19

I had built a c++ dektop project with VS17. Now due to certain requirements, I needed it to migrate to VS19.

After making changes to compile my project with VS19, I am seeing many errors like below:

  1. C3646 'OVERRIDE': unknown override specifier
  2. C2039: 'wstring': is not a member of 'std'

I found this link - https://learn.microsoft.com/en-us/cpp/error-messages/compiler-errors-2/compiler-error-c3646?view=msvc-170
but could not find it useful to fix my issue.

I am looking for an easy fix, like if there is a way to use VS17 c++ compiler in VS19.

Upvotes: 0

Views: 448

Answers (2)

hadiseh mousavi
hadiseh mousavi

Reputation: 11

It is possible to use VS 2017 compiler in VS 2019 using "platform toolset" option in properties of project. For this setting install VS 2017 Platform toolset then open project in VS 2019 and go to: properties/Configuration properties/General/Platform toolset: Visual Studio 2017(V141)

Upvotes: 0

Axel Kemper
Axel Kemper

Reputation: 11322

Rather than going back to the old compiler, you might be better off tackling the errors one-by-one:

OVERRIDE: is probably defined as macro somewhere in your project. Find out, what value OVERRIDE is being resolved to. Put the cursor into the word OVERRIDE to get the value. It could be that the respective include file is not properly included for some reason. Does your old project include a forced include for global definitions?

wstring: to be recognized as std::wstring, you have to include <string>.
Check your UNICODE settings. They determine the usage of 8-byte vs. multi-byte characters for strings. Look at Configuration Properties / Advanced / Character Set in the solution properties.

Upvotes: 1

Related Questions