Windows static library file

Статические библиотеки (C++/CX) Static libraries (C++/CX)

Статическая библиотека, используемая в приложении универсальная платформа Windows (UWP), может содержать стандартный код C++, включая типы STL, а также вызовы API-интерфейсов Win32, которые не исключены из платформы среда выполнения Windows приложений. A static library that’s used in a Universal Windows Platform (UWP) app can contain ISO-standard C++ code, including STL types, and also calls to Win32 APIs that are not excluded from the Windows Runtime app platform. Статическая библиотека использует компоненты среда выполнения Windows и может создавать среда выполнения Windows компоненты с определенными ограничениями. A static library consumes Windows Runtime components and may create Windows Runtime components with certain restrictions.

Создание статических библиотек Creating static libraries

Инструкции по созданию нового проекта зависят от установленной версии Visual Studio. Instructions for creating a new project vary depending on which version of Visual Studio you have installed. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. To see the documentation for your preferred version of Visual Studio, use the Version selector control. Он находится в верхней части оглавления на этой странице. It’s found at the top of the table of contents on this page.

Создание статической библиотеки UWP в Visual Studio 2019 To create a UWP static library in Visual Studio 2019

В строке меню выберите Файл > Создать > Проект, чтобы открыть диалоговое окно Создание проекта. On the menu bar, choose File > New > Project to open the Create a New Project dialog box.

В верхней части диалогового окна задайте для параметра язык значение C++, задайте для параметра платформа значение Windows, а для параметра тип проектаUWP. At the top of the dialog, set Language to C++, set Platform to Windows, and set Project type to UWP.

В отфильтрованном списке типов проектов выберите статическая библиотека (Universal Windows-C++/CX) , а затем нажмите кнопку Далее. From the filtered list of project types, choose Static Library (Universal Windows — C++/CX) then choose Next. На следующей странице присвойте проекту имя и при необходимости укажите расположение проекта. In the next page, give the project a name, and specify the project location if desired.

Нажмите кнопку Создать, чтобы создать проект. Choose the Create button to create the project.

Создание статической библиотеки UWP в Visual Studio 2017 или Visual Studio 2015 To create a UWP static library in Visual Studio 2017 or Visual Studio 2015

В строке меню выберите Файл > Создать > Проект. On the menu bar, choose File > New > Project. В разделе Visual C++ > универсальная библиотека Windows выберите статическую библиотеку (универсальное Windows). Under Visual C++ > Windows Universal choose Static Library (Universal Windows).

В области Обозреватель решений откройте контекстное меню для проекта и выберите пункт Свойства. In Solution Explorer, open the shortcut menu for the project and then choose Properties. В диалоговом окне Свойства на странице Свойства конфигурации > C/C++ задайте для параметра использовать расширение среда выполнения Windows значение Да (/ZW). In the Properties dialog box, on the Configuration Properties > C/C++ page, set Consume Windows Runtime Extension to Yes (/ZW).

При компиляции новой статической библиотеки при вызове API Win32, который исключен для приложений UWP, компилятор вызовет ошибку C3861, «идентификатор не найден». When you compile a new static library, if you make a call to a Win32 API that’s excluded for UWP apps, the compiler will raise error C3861, «Identifier not found.» Чтобы найти альтернативный метод, который поддерживается для среда выполнения Windows, см. раздел альтернативы интерфейсам API Windows в приложениях UWP. To look for an alternative method that’s supported for the Windows Runtime, see Alternatives to Windows APIs in UWP apps.

Читайте также:  Как поменять клавиши копировать вставить windows 10

При добавлении проекта статической библиотеки C++ в решение приложения UWP может потребоваться обновить параметры свойств проекта библиотеки, чтобы для свойства поддержки UWP было задано значение Да. If you add a C++ static library project to a UWP app solution, you might have to update the library project’s property settings so that the UWP support property is set to Yes. Без этого параметра код выполняет сборку и ссылки, но при попытке проверить приложение для Microsoft Store возникает ошибка. Without this setting, the code builds and links, but an error occurs when you attempt to verify the app for the Microsoft Store. Статическая библиотека должна компилироваться с теми же параметрами компилятора, что и проект, в котором она используется. The static lib should be compiled with the same compiler settings as the project that consumes it.

При использовании статической библиотеки, которая создает открытые классы ref , открытые классы интерфейсов или открытые классы значений, компоновщик выдает следующее предупреждение: If you consume a static library that creates public ref classes, public interface classes, or public value classes, the linker raises this warning:

предупреждение LNK4264: архивирование объектного файла, скомпилированного с помощью/ZW, в статическую библиотеку; Обратите внимание, что при создании среда выполнения Windows типов не рекомендуется связываться со статической библиотекой, содержащей метаданные среда выполнения Windows. warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata.

Предупреждение можно спокойно проигнорировать только в том случае, если статическая библиотека не создается среда выполнения Windows компонентов, которые используются за пределами самой библиотеки. You can safely ignore the warning only if the static library is not producing Windows Runtime components that are consumed outside the library itself. Если библиотека не использует компонент, который она определяет, то компоновщик может оптимизировать реализацию, даже если открытые метаданные содержат сведения о типе. If the library doesn’t consume a component that it defines, then the linker can optimize away the implementation even though the public metadata contains the type information. Это означает, что открытые компоненты в статической библиотеке будут скомпилированы, но не активируются во время выполнения. This means that public components in a static library will compile but will not activate at run time. По этой причине любой компонент среда выполнения Windows, предназначенный для использования другими компонентами или приложениями, должен быть реализован в библиотеке динамической компоновки (DLL). For this reason, any Windows Runtime component that’s intended for consumption by other components or apps must be implemented in a dynamic-link library (DLL).

Walkthrough: Create and use a static library

This step-by-step walkthrough shows how to create a static library (.lib file) for use with C++ apps. Using a static library is a great way to reuse code. Rather than reimplementing the same routines in every app that requires the functionality, you write them one time in a static library and then reference it from the apps. Code linked from a static library becomes part of your app—you don’t have to install another file to use the code.

This walkthrough covers these tasks:

Prerequisites

An understanding of the fundamentals of the C++ language.

Create a static library project

The instructions for how to create the project vary depending on your version of Visual Studio. To see the documentation for your preferred version of Visual Studio, use the Version selector control. It’s found at the top of the table of contents on this page.

To create a static library project in Visual Studio 2019

On the menu bar, choose File > New > Project to open the Create a New Project dialog box.

At the top of the dialog, set Language to C++, set Platform to Windows, and set Project type to Library.

From the filtered list of project types, select Windows Desktop Wizard, then choose Next.

In the Configure your new project page, enter MathLibrary in the Project name box to specify a name for the project. Enter StaticMath in the Solution name box. Choose the Create button to open the Windows Desktop Project dialog.

Читайте также:  Ошибка windows синий экран 0х0000001а

In the Windows Desktop Project dialog, under Application type, select Static Library (.lib).

Under Additional options, uncheck the Precompiled header check box if it’s checked. Check the Empty project box.

Choose OK to create the project.

To create a static library project in Visual Studio 2017

On the menu bar, choose File > New > Project.

In the New Project dialog box, select Installed > Visual C++ > Windows Desktop. In the center pane, select Windows Desktop Wizard.

Specify a name for the project—for example, MathLibrary—in the Name box. Specify a name for the solution—for example, StaticMath—in the Solution Name box. Choose the OK button.

In the Windows Desktop Project dialog, under Application type, select Static Library (.lib).

Under Additional Options, uncheck the Precompiled header check box if it’s checked. Check the Empty project box.

Choose OK to create the project.

To create a static library project in Visual Studio 2015

On the menu bar, choose File > New > Project.

In the New Project dialog box, select Installed > Templates > Visual C++ > Win32. In the center pane, select Win32 Console Application.

Specify a name for the project—for example, MathLibrary—in the Name box. Specify a name for the solution—for example, StaticMath—in the Solution Name box. Choose the OK button.

In the Win32 Application Wizard, choose Next.

In the Application Settings page, under Application type, select Static library. Under Additional options, uncheck the Precompiled header checkbox. Choose Finish to create the project.

Add a class to the static library

To add a class to the static library

To create a header file for a new class, right-click to open the shortcut menu for the MathLibrary project in Solution Explorer, and then choose Add > New Item.

In the Add New Item dialog box, select Visual C++ > Code. In the center pane, select Header File (.h). Specify a name for the header file—for example, MathLibrary.h—and then choose the Add button. A nearly blank header file is displayed.

Add a declaration for a class named Arithmetic to do common mathematical operations such as addition, subtraction, multiplication, and division. The code should resemble:

To create a source file for the new class, open the shortcut menu for the MathLibrary project in Solution Explorer, and then choose Add > New Item.

In the Add New Item dialog box, in the center pane, select C++ File (.cpp). Specify a name for the source file—for example, MathLibrary.cpp—and then choose the Add button. A blank source file is displayed.

Use this source file to implement the functionality for class Arithmetic . The code should resemble:

To build the static library, select Build > Build Solution on the menu bar. The build creates a static library, MathLibrary.lib, that can be used by other programs.

When you build on the Visual Studio command line, you must build the program in two steps. First, run cl /c /EHsc MathLibrary.cpp to compile the code and create an object file that’s named MathLibrary.obj. (The cl command invokes the compiler, Cl.exe, and the /c option specifies compile without linking. For more information, see /c (Compile Without Linking).) Second, run lib MathLibrary.obj to link the code and create the static library MathLibrary.lib. (The lib command invokes the Library Manager, Lib.exe. For more information, see LIB Reference.)

Create a C++ console app that references the static library

To create a C++ console app that references the static library in Visual Studio 2019

In Solution Explorer, right-click on the top node, Solution ‘StaticMath’, to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog box.

At the top of the dialog, set the Project type filter to Console.

From the filtered list of project types, choose Console App then choose Next. In the next page, enter MathClient in the Name box to specify a name for the project.

Choose the Create button to create the client project.

After you create a console app, an empty program is created for you. The name for the source file is the same as the name that you chose earlier. In the example, it’s named MathClient.cpp .

To create a C++ console app that references the static library in Visual Studio 2017

In Solution Explorer, right-click on the top node, Solution ‘StaticMath’, to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog box.

Читайте также:  Scan missing windows files

In the Add New Project dialog box, select Installed > Visual C++ > Windows Desktop. In the center pane, select Windows Desktop Wizard.

Specify a name for the project—for example, MathClient—in the Name box. Choose the OK button.

In the Windows Desktop Project dialog, under Application type, select Console Application (.exe).

Under Additional Options, uncheck the Precompiled header check box if it’s checked.

Choose OK to create the project.

After you create a console app, an empty program is created for you. The name for the source file is the same as the name that you chose earlier. In the example, it’s named MathClient.cpp .

To create a C++ console app that references the static library in Visual Studio 2015

In Solution Explorer, right-click on the top node, Solution ‘StaticMath’, to open the shortcut menu. Choose Add > New Project to open the Add a New Project dialog box.

In the Add New Project dialog box, select Installed > Visual C++ > Win32. In the center pane, select Win32 Console Application.

Specify a name for the project—for example, MathClient—in the Name box. Choose the OK button.

In the Win32 Application Wizard dialog, choose Next.

On the Application Settings page, under Application type, make sure Console application is selected. Under Additional options, uncheck Precompiled header, then check the Empty Project checkbox. Choose Finish to create the project.

To add a source file to the empty project, right-click to open the shortcut menu for the MathClient project in Solution Explorer, and then choose Add > New Item.

In the Add New Item dialog box, select Visual C++ > Code. In the center pane, select C++ File (.cpp). Specify a name for the source file—for example, MathClient.cpp—and then choose the Add button. A blank source file is displayed.

Use the functionality from the static library in the app

To use the functionality from the static library in the app

Before you can use the math routines in the static library, you must reference it. Open the shortcut menu for the MathClient project in Solution Explorer, and then choose Add > Reference.

The Add Reference dialog box lists the libraries that you can reference. The Projects tab lists the projects in the current solution and any libraries they reference. Open the Projects tab, select the MathLibrary check box, and then choose the OK button.

To reference the MathLibrary.h header file, you must modify the included directories path. In Solution Explorer, right-click on MathClient to open the shortcut menu. Choose Properties to open the MathClient Property Pages dialog box.

In the MathClient Property Pages dialog box, set the Configuration drop-down to All Configurations. Set the Platform drop-down to All Platforms.

Select the Configuration Properties > C/C++ > General property page. In the Additional Include Directories property, specify the path of the MathLibrary directory, or browse for it.

To browse for the directory path:

Open the Additional Include Directories property value drop-down list, and then choose Edit.

In the Additional Include Directories dialog box, double-click in the top of the text box. Then choose the ellipsis button (. ) at the end of the line.

In the Select Directory dialog box, navigate up a level, and then select the MathLibrary directory. Then choose the Select Folder button to save your selection.

In the Additional Include Directories dialog box, choose the OK button.

In the Property Pages dialog box, choose the OK button to save your changes to the project.

You can now use the Arithmetic class in this app by including the #include «MathLibrary.h» header in your code. Replace the contents of MathClient.cpp with this code:

To build the executable, choose Build > Build Solution on the menu bar.

Run the app

To run the app

Make sure that MathClient is selected as the default project. To select it, right-click to open the shortcut menu for MathClient in Solution Explorer, and then choose Set as StartUp Project.

To run the project, on the menu bar, choose Debug > Start Without Debugging. The output should resemble:

Оцените статью