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

Toto téma obsahuje Průvodce pro upgrade Visual C++ – kód.This topic provides a guide for upgrading Visual C++ code. To zahrnuje získání kód, který zkompilování a spuštění správně na novější verzi nástroje, jakož i využívat výhod nového jazyka a funkcích nástroje 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ší verze aplikací na více moderní platformy.This topic also includes information about migrating legacy apps to more modern platforms.

Důvody pro Upgrade Visual C++ – kódReasons 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 optimalizace vylepšené kompilátoru.Faster code, due to improved compiler optimizations.

  • Rychlejší sestavení, z důvodu vylepšení výkonu v kompilátoru sám sebe.Faster builds, due to performance improvements in the compiler itself.

  • Shoda lepší standardů.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 kontrola ochrana.Security features such as guard checking.

Portování kóduPorting your Code

Při upgradu, nejprve zvažte kódu a projekty vaší aplikace.When upgrading, first consider your application's code and projects. Je vaše aplikace vytvořené s nástroji Visual Studio?Is your application built with Visual Studio? Pokud ano, identifikujte související se situací projekty.If so, identify the projects involved. Máte vlastní sestavovací skripty?Do you have custom build scripts? Pokud máte skripty vlastního sestavení místo použití systém sestavení sady Visual Studio, budete mít více práce uděláte v upgradu, protože nelze ušetřit čas tím, že Visual Studio aktualizovat 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í systému a projekt souboru v sadě Visual Studio se změnil 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 budete mít systém vysoce přizpůsobenou sestavení, můžete chtít provést další práci pro upgrade.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šich projektů se už používá MSBuild, tak upgrade projektu a sestavení pro vaše aplikace by měla být snazší.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, upgradu a používání nástroje MSBuild.If you are not using Visual Studio's build system, you should consider upgrading to use MSBuild. Pokud provádíte upgrade pomocí nástroje MSBuild, může mít jednodušší čas v budoucí aktualizace, a je jednodušší použít službám, 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. 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

Pokud chcete spustit upgrade projekt nebo řešení, právě otevřete řešení v nové verzi sady Visual Studio a postupujte podle výzev a spusťte upgrade je.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. Při upgradu na projekt, dojde upgradu zprávu, která je také uloženy ve složce 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ěnách, 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. Vložené souboryInclude files

  3. Kód, který už zkompilován čistě z důvodu kompilátoru shoda imrovements nebo změny v standard.Code 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 systému Windows, které již nejsou k dispozici nebo soubory hlaviček, které nejsou součástí výchozí instalace 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ý už zkompiluje z důvodu změn v rozhraní API, jako přejmenovat rozhraní API, změnit funkce podpisy nebo 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ý už zkompiluje z důvodu změn v diagnostice, jako je například upozornění, aby se aktivovala chybuCode that no longer compiles due to changes in diagnostics, such as warning becoming an error

  7. Chybami linkeru z důvodu knihovny, které byly změněny, zejména v případě, že se používá /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 z důvodu změny chováníRuntime errors or unexpected results due to behavior changes

  9. Chyby z důvodu chyb, které byly zavedeny v nástrojích pro.Errors due to errors that were introduced in the tools. Pokud narazíte na problém nahlásit týmu Visual C++ pomocí pracovníkům podpory normální, nebo pomocí Visual Studio zpětnou vazbu 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é se nelze vyhnout 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:

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

  11. Můžete chtít využívat výhod novější kompilátoru funkcí, jako /guard:cf (Povolit toku řízení Guard) – možnost kompilátoru, která přidává kontroluje provádění neoprávněným kódu.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.

  12. Může chcete aktualizovat některé kódu pro použití nové jazykové funkce, které zjednodušit kód, zlepšit výkon programy nebo aktualizujte kód a používat moderní knihovny odpovídat moderních standardů a osvědčených postupů.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.

    Jakmile jste upgradovat a testování projektu, můžete také chtít zvažte vylepšení kód další plánování budoucí směr kódu nebo i nebyla architektuře 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. Se zobrazí probíhající vývoji?Will it receive ongoing development work? Bude být 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á jazyka navrhovat s přenositelnosti a vývoj pro různé platformy v paměti a ještě kód pro mnoho aplikací systému Windows je důrazně vázaný na platformě Windows.C++ is a standardized langauge 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ódu, jak oddělit ty části, které jsou více svázané s platformou Windows?Do you want to refactor your code, to separate out those parts that are more tied to the Windows platform?

    Co uživatelské rozhraní?What about your user interface? Pokud používáte MFC, můžete chtít aktualizovat uživatelského rozhraní.If you are using MFC, you might want to update the UI. Používáte všechny 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řepisování celá aplikace, můžete zvážit pomocí rozhraní API 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í jazyka XAML, ale nechcete použít k vytvoření aplikace pro UPW, můžete C# v grafickém subsystému WPF vytvoření vrstvy uživatelského rozhraní a refactor logika standardní C++ do knihovny 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 interoperabilitu v jazyce C + +/ CLI připojit C# s nativním kódem.Create an interoperability layer in C++/CLI to connect C# with your native code. Další možností je vytvořit pomocí aplikace UWP C + +/ CX nebo C + +/ WinRT.Another option is to create a UWP app using C++/CX or C++/WinRT. V systému Windows 10, můžete použít plochy aplikace převaděč do balíčku plochy aplikace jako aplikace pro UPW bez nutnosti upravit žádný 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 předvídáte, třeba pro cílení na platformy kromě Windows desktop, například Windows Phone nebo zařízení se systémem Android.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 portu kód uživatelského rozhraní a knihovna uživatelského rozhraní a platformy.You could port your user interface code to a cross-platform UI library. Pomocí těchto rozhraní uživatelského rozhraní můžete cíle více zařízení a nadále používat Visual Studio a ladicí program 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 projektů vytvořených v dřívějších verzích systému Visual C++.Discusses how to use projects created in earlier versions of Visual C++.
Co je nového pro kompilátor 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ástrojů pro Visual Studio 2017 ze sady Visual Studio 2015Changes 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í shoda standardy z Visual Studia 2015 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 ve Visual C++ knihovny a nástroje pro sestavení ze sady Visual Studio 2003 prostřednictvím 2015, které může 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 Visual C++ ze sady Visual Studio 2003 pomocí sady 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 Postup použití vcpkg nástroj příkazového řádku port starší knihovny open-source na verze kompilovat s novější modulové 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 která je součástí a upgraduje několik ukázky a aplikace jsme popsané prostředí a výsledky.For this section, we ported and upgrades several samples and applications and discussed the experiences and results. Může zjistit, že čtení těchto poskytuje je můžete představu o co účastní přenos a upgrade procesu.You might find that reading these gives you a sense of what is involved in the porting and upgrading process. V celém procesu, budeme zabývat tipy a triky pro upgrade a zobrazit jak konkrétní chyby jsme vyřešili.Throughout the process, we discuss tips and tricks for upgrading and show how specific errors were fixed.
Přenos aplikací do univerzální platformy WindowsPorting to the Universal Windows Platform Obsahuje informace o portování kódu na 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ří jsou nové pro aplikaci 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 Popisuje možnosti migrace aplikací systému UNIX do systému Windows.Discusses options for migrating UNIX applications to Windows.
Základy migrace v jazyce C++/CLIC++/CLI Migration Primer Podrobně zobrazuje postup upgradu vaší spravovaných rozšíření pro C++ Syntaxe použití nové syntaxe.Shows in detail how to upgrade your Managed Extensions for C++ syntax to use the new syntax. Další informace najdete v tématu rozšíření komponent pro platformy běhového prostředí.For more information, see Component Extensions for Runtime Platforms.

Viz takéSee Also

Visual C++Visual C++