Průvodce přenosem a upgradováním Visual C++Visual C++ Porting and Upgrading Guide

Toto téma poskytuje návod pro upgrade kódu jazyka Visual C++.This topic provides a guide for upgrading Visual C++ code. To zahrnuje získání kódu zkompilovat a spustit správně na novější verzi nástrojů, jakož i využívat nový jazyk a funkce aplikace Visual Studio.This includes getting the code to compile and run correctly on a newer release of the tools, as well as taking advantage of new language and Visual Studio features. Toto téma obsahuje také informace o migraci starších aplikací na Modernější platformy.This topic also includes information about migrating legacy apps to more modern platforms.

Důvody pro Upgrade kódu Visual C++Reasons to Upgrade Visual C++ Code

Měli byste zvážit upgrade kódu z následujících důvodů:You should consider upgrading your code for the following reasons:

  • Rychlejší kód z důvodu vylepšení kompilátoru optimalizace.Faster code, due to improved compiler optimizations.

  • Rychlejší sestavování, kvůli zvýšení výkonu kompilátoru samotný.Faster builds, due to performance improvements in the compiler itself.

  • Shoda se standardy lepší.Improved standards conformance. Visual C++ teď implementuje mnoho funkcí z nejnovějších standardů C++.Visual C++ now implements many features from the latest C++ standards.

  • Lepší zabezpečení.Better security. Funkce zabezpečení, jako je kontroluje.Security features such as guard checking.

Portování kóduPorting your Code

Při upgradu, nejprve zvažte kódu vaší aplikace a projekty.When upgrading, first consider your application's code and projects. Je vaše aplikace vytvořená pomocí sady Visual Studio?Is your application built with Visual Studio? Pokud ano, identifikujte projekty, které jsou zahrnuté.If so, identify the projects involved. Máte skripty vlastního sestavení?Do you have custom build scripts? Pokud máte skripty vlastního sestavení místo sestavení systému Visual Studio, budete mít další práci v rámci upgradu, protože nelze ušetřit čas tím, že Visual Studio, aktualizujte si soubory projektu a nastavení sestavení.If you have custom build scripts instead of using Visual Studio's build system, you will have more work to do in upgrading, because you can't save time by having Visual Studio update your project files and build settings.

Formát sestavení projekt a systému souborů v sadě Visual Studio se změní z vcbuild ve verzích až Visual Studio 2008 na MSBuild verze sady Visual Studio 2010 a vyšší.The build system and project file format in Visual Studio changed from vcbuild in versions up to Visual Studio 2008 to MSBuild in versions of Visual Studio from 2010 onwards. Pokud se upgrade z verze před 2010 a máte vysoce přizpůsobenou systém, bude pravděpodobně více práce k upgradu.If your upgrade is from a version prior to 2010, and you have a highly customized build system, you might have to do more work to upgrade. Pokud jste upgrade z produktu Visual Studio 2010 nebo novější, vaše projekty upgrade projektu a sestavení pro vaši aplikaci, by tak měly být jednodušší už používáte MSBuild.If you are upgrading from Visual Studio 2010 or later, your projects are already using MSBuild, so upgrading the project and build for your application should be easier.

Pokud nepoužíváte systém sestavení sady Visual Studio, měli byste zvážit upgrade na použití nástroje MSBuild.If you are not using Visual Studio's build system, you should consider upgrading to use MSBuild. Pokud upgradujete na použití nástroje MSBuild, bude pravděpodobně usnadní v budoucí inovace a bude usnadňuje používání služeb, jako je Visual Studio Online.If you upgrade to use MSBuild, you might have an easier time in future upgrades, and it will be easier to use services such as Visual Studio Online. Nástroj MSBuild podporuje všechny cílové platformy, které podporuje Visual Studio.MSBuild supports all the target platforms that Visual Studio supports.

Portování projektů sady Visual StudioPorting Visual Studio Projects

Spustit upgrade projektu nebo řešení, právě otevřete řešení v nové verzi sady Visual Studio a postupujte podle výzev a spusťte upgrade se.To start upgrading a project or solution, just open the solution in the new version of Visual Studio, and follow the prompts to start upgrading it. Když upgradujete projekt, získáte upgradu sestava, která se také uloží do složky projektu jako UpgradeLog.htm.When you upgrade a project, you get an upgrade report, which is also saved in your project folder as UpgradeLog.htm. Upgrade sestava zobrazuje souhrn jaké problémy se vyskytly během procesu upgradu a některé informace o změny, které byly provedeny nebo problémy, které nelze vyřešit automaticky.The upgrade report shows a summary of what problems were encountered during the upgrade process and some information about changes that were made, or problems that could not be addressed automatically.

  1. Vlastnosti projektuProject properties

  2. Soubory k zahrnutíInclude files

  3. Kód, který už zkompiluje čistě kvůli imrovements shoda kompilátoru nebo standard se změnamiCode that no longer compiles cleanly due to compiler conformance imrovements or changes in the standard

  4. Kód, který využívá funkce sady Visual Studio nebo Windows, které už nejsou k dispozici nebo hlavičkové soubory, které nejsou zahrnuté ve výchozí instalaci sady Visual Studio, nebo byly odebrány z produktuCode that relies on Visual Studio or Windows features that are no longer available or header files that either aren't included in a default installation of Visual Studio, or were removed from the product

  5. Kód, který již nezkompiluje z důvodu změn v rozhraní API, jako přejmenovat rozhraní API, podpisech funkcí změny a zastaralé funkceCode that no longer compiles due to changes in APIs such as renamed APIs, changed function signatures, or deprecated functions

  6. Kód, který již nezkompiluje z důvodu změn v diagnostice, jako je například upozornění stávají chybuCode that no longer compiles due to changes in diagnostics, such as warning becoming an error

  7. Linker chyby vzniklé v důsledku knihovny, které byly změněny, zejména v případě, že se používá parametr/NODEFAULTLIB.Linker errors due to libraries that were changed, especially when /NODEFAULTLIB is used.

  8. Chyby za běhu nebo neočekávané výsledky díky změnám chováníRuntime errors or unexpected results due to behavior changes

  9. Chyby vzniklé v důsledku chyby, které byly zavedeny v nástrojích.Errors due to errors that were introduced in the tools. Pokud narazíte na problém, ohlásit týmu Visual C++ pomocí pracovníkům podpory normální, nebo pomocí Visual Studio Feedback Center.If you encounter an issue, report it to the Visual C++ team through your normal support channels or by using the Visual Studio Feedback Center.

Kromě změn, které není možné vyhnout se z důvodu chyb kompilátoru některé změny jsou volitelné v upgradu, jako například:In addition to changes that you can't avoid due to compiler errors, some changes are optional in an upgrade process, such as:

  1. Nová upozornění může znamenat, že chcete vyčistit váš kód.New warnings might mean you want to clean up your code. V závislosti na konkrétní diagnostické to zlepšit přenositelnost, shoda se standardy a zabezpečení vašeho kódu.Depending on the specific diagnostics, this can improve the portability, standards conformance, and security of your code.

  2. Můžete chtít využívat novější funkce kompilátoru, jako (povolení toku řízení ochrany) / Guard: CF – možnost kompilátoru, který přidává kontroly pro provádění neoprávněný kód.You might want to take advantage of newer compiler features such as the /guard:cf (Enable Flow Control Guard) compiler option, which adds checks for unauthorized code execution.

  3. Může vyžadovat aktualizaci kódu pro použití nových funkcí jazyka, které zjednodušuje kód, zvýšit výkon svých programů nebo aktualizovat kód v souladu s moderních standardů a osvědčených postupů a používat moderní knihovny.You might want to update some code to use new language features that simplify the code, improve the performance of your programs, or update the code to use modern libraries and conform to modern standards and best practices.

Po upgradu a testování projektu, může být také vhodné zvažte vylepšení další kód nebo plánovat budoucí směr kódu nebo dokonce zvažte architekturu vašeho projektu.Once you've upgraded and tested your project, you might also want to consider improving your code further or plan the future direction of your code, or even reconsider the architecture of your project. Obdrží jeho aktuálnímu vývoji?Will it receive ongoing development work? Stane se důležité pro váš kód pro spuštění na jiných platformách?Will it be important for your code to run on other platforms? Pokud ano, jaké platformy?If so, what platforms? C++ je standardizovaná jazyk určený přenositelnost a vývoj pro různé platformy v úvahu a ještě kód pro spoustu aplikací na Windows silnou vazbu na platformu Windows.C++ is a standardized language designed with portability and cross-platform development in mind, and yet the code for many Windows applications is strongly tied to the Windows platform. Opravdu chcete Refaktorovat kód, k tomu oddělit tyto součásti, které jsou více svázané na platformu Windows?Do you want to refactor your code, to separate out those parts that are more tied to the Windows platform?

A co uživatelského rozhraní?What about your user interface? Pokud používáte knihovnu MFC, můžete chtít aktualizovat uživatelské rozhraní.If you are using MFC, you might want to update the UI. Používáte novější funkce MFC, které byly zavedeny v 2008 jako Feature Pack?Are you using any of the newer MFC features that were introduced in 2008 as a Feature Pack? Pokud chcete poskytnout novější vzhled a chování vaší aplikace bez přepsání celé aplikace, můžete zvážit použití rozhraní API na pásu karet v prostředí MFC, nebo pomocí některé z nových funkcí knihovny MFC.If you just want to give your app a newer look and feel, without rewriting the entire app, you might consider using the ribbon APIs in MFC, or using some of new features of MFC.

Pokud chcete svůj program poskytnout uživatelské rozhraní XAML, ale nechtějí vytvářet aplikace pro UPW, můžete použít C# s WPF vytvořit vrstvě uživatelského rozhraní a Refaktorujte logiky standard C++ do knihoven DLL.If you want to give your program a XAML user-interface but don't want to create a UWP app, you can use C# with WPF to create the UI layer and refactor your standard C++ logic into DLLs. Vytvoření vrstvy vzájemná funkční spolupráce v jazyce C + +/ CLI pro připojení k C# pomocí nativního kódu.Create an interoperability layer in C++/CLI to connect C# with your native code. Další možností je vytvořit aplikaci UPW pomocí C + +/ CX nebo C + +/ WinRT.Another option is to create a UWP app using C++/CX or C++/WinRT. Ve Windows 10, můžete použít Desktop App Converter chcete zabalit desktopové aplikace jako aplikace pro UPW bez nutnosti upravit veškerý kód.In Windows 10, you can use the Desktop App Converter to package your existing desktop application as a UWP app without having to modify any code.

Případně třeba Teď máte nové požadavky nebo můžou předvídat potřebu cílení na jiných platformách než Windows desktop, jako jsou Windows Phone nebo zařízení s Androidem.Alternatively, perhaps you now have new requirements, or you can foresee the need for targeting platforms other than Windows desktop, such as Windows Phone, or Android devices. Může přeneste kód uživatelského rozhraní pro multiplatformní knihovna uživatelského rozhraní.You could port your user interface code to a cross-platform UI library. Tyto architektury uživatelského rozhraní můžete cílit na více zařízení a dál používat Visual Studio a ladicím programu sady Visual Studio jako vývojové prostředí.With these UI frameworks, you can target multiple devices and still use Visual Studio and the Visual Studio debugger as your development environment.

NázevTitle PopisDescription
Upgrade projektů z dřívějších verzí Visual C++Upgrading Projects from Earlier Versions of Visual C++ Popisuje, jak používat projekty vytvořené v dřívějších verzích Visual C++.Discusses how to use projects created in earlier versions of Visual C++.
Co je nového pro kompilátor jazyka C++ v sadě Visual Studio 2017 RCWhat's New for The C++ compiler in Visual Studio 2017 RC Změny v prostředí IDE a nástroje z Visual Studia 2015 do sady Visual Studio 2017Changes in the IDE and tools from Visual Studio 2015 to Visual Studio 2017
Vylepšení shody C++ se sadou Visual Studio 2017C++ conformance improvements in Visual Studio 2017 Vylepšení ze sady Visual Studio 2015 do sady Visual Studio 2017Standards conformance improvements from Visual Studio 2015 to Visual Studio 2017
Historie změn Visual C++ 2003–2015Visual C++ change history 2003 - 2015 Seznam všech změn v Visual C++ knihovny a nástroje sestavení ze sady Visual Studio 2003 do 2015, které mohou vyžadovat změny v kódu.A list of all the changes in the Visual C++ libraries and build tools from Visual Studio 2003 through 2015 that might require changes in your code.
Novinky Visual C++ 2003–2015Visual C++ What's New 2003 through 2015 Všechny "Novinky" informace pro jazyk Visual C++ ze sady Visual Studio 2003 do Visual Studio 2015.All the "what's new" information for Visual C++ from Visual Studio 2003 through Visual Studio 2015.
Přenos knihoven třetích stranPorting 3rd-party libraries Jak používat vcpkg nástroj příkazového řádku k portu starší knihovny open-source verze kompilován s novější sady nástrojů Visual C++.How to use the vcpkg command line tool to port older open-source libraries to versions compiled with more recent Visual C++ toolsets.
Přenos a upgrade: Příklady a případové studiePorting and Upgrading: Examples and Case Studies Pro tento oddíl přenáší a upgraduje několik ukázek a aplikací jsme probírali prostředí a výsledky.For this section, we ported and upgrades several samples and applications and discussed the experiences and results. Můžete zjistit, že čtení těchto poskytuje vás o tom, co se tak zapojí v portování a upgradování procesu.You might find that reading these gives you a sense of what is involved in the porting and upgrading process. Během tohoto procesu jsme popisují tipy a triky pro upgrade a zobrazit jak se konkrétní chyby byly opraveny.Throughout the process, we discuss tips and tricks for upgrading and show how specific errors were fixed.
Přenos aplikací do platformy Universal WindowsPorting to the Universal Windows Platform Obsahuje informace o převodu kódu pro Windows 10Contains information about porting code to Windows 10
Úvod do prostředí Visual C++ pro uživatele systému UNIXIntroduction to Visual C++ for UNIX Users Poskytuje informace pro uživatele systému UNIX, kteří začínají s Visual C++ a chcete se s ním být produktivní.Provides information for UNIX users who are new to Visual C++ and want to become productive with it.
Přenos ze systému UNIX do Win32Porting from UNIX to Win32 Tento článek popisuje možnosti pro migraci systému UNIX aplikací pro Windows.Discusses options for migrating UNIX applications to Windows.

Viz takéSee Also

Visual C++Visual C++