Visual studio не создается lib

Обновлено: 04.07.2024

В этом пошаговом руководстве описывается создание статической библиотеки (LIB-файла) для использования с приложениями C++. Статические библиотеки являются хорошим способом повторного использования кода. Вместо того чтобы каждый раз реализовывать одни и те же подпрограммы для обеспечения той или иной функциональности в каждом создаваемом приложении, их можно создать единожды и затем вызывать из приложений. Код, подключенный из статической библиотеки, становится частью вашего приложения — для использования кода не нужно устанавливать еще какой-либо файл.

В этом пошаговом руководстве рассматриваются следующие задачи:

Предварительные требования

Для работы необходимо владеть основами языка C++.

Создание проекта статической библиотеки

Инструкции по созданию проекта зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

Создание проекта статической библиотеки в Visual Studio

В строке меню выберите Файл > Создать > Проект, чтобы открыть диалоговое окно Создание проекта.

В верхней части диалогового окна для параметра Язык установите значение C++ , для параметра Платформа — значение Windows, а для параметра Тип проекта — значение Библиотека.

В отфильтрованном списке типов проектов выберите пункт Мастер классических приложений Windows, а затем нажмите кнопку Далее.

В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .

В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.

Создание проекта статической библиотеки в Visual Studio 2017

В строке меню щелкните Файл > Создать > Проект.

В диалоговом окне Новый проект выберите Установленные > Visual C++ > Классическое приложение для Windows. На центральной панели выберите Мастер классических приложений Windows.

В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Статическая библиотека (.lib) .

В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен. Установите флажок Пустой проект.

Создание проекта статической библиотеки в Visual Studio 2015

В строке меню щелкните Файл > Создать > Проект.

В диалоговом окне Новый проект выберите Установленные > Шаблоны > Visual C++ > Win32. В центральной области выберите Консольное приложение Win32.

В мастере приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения в разделе Тип приложения выберите Статическая библиотека. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок. Чтобы создать проект, нажмите кнопку Готово.

Добавление класса в статическую библиотеку

Добавление класса в статическую библиотеку

Чтобы создать файл заголовка для нового класса откройте контекстное меню проекта MathLibrary в обозревателе решений, а затем выберите Добавить > Новый элемент.

В диалоговом окне Добавление нового элемента выберите пункт Visual C++ > Код. В центральной области выберите Заголовочный файл (.h) . Укажите имя для файла заголовка, например MathLibrary.h, и нажмите кнопку Добавить. Отобразится почти пустой файл заголовка.

Добавьте объявление класса с именем Arithmetic для выполнения обычных арифметических операций, таких как сложение, вычитание, умножение и деление. Код должен выглядеть примерно так:

Чтобы создать исходный файл для нового класса, откройте контекстное меню проекта MathLibrary в обозревателе решений, а затем выберите Добавить > Новый элемент.

В диалоговом окне Добавление нового элемента в центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла, например MathLibrary.cpp, и нажмите кнопку Добавить. Отобразится пустой исходный файл.

Используйте этот исходный файл для реализации функций класса Arithmetic . Код должен выглядеть примерно так:

Чтобы выполнить сборку статической библиотеки, выберите в строке меню команду Сборка > Собрать решение. В результате будет создана статическая библиотека MathLibrary.lib, которая может использоваться другими программами.

При выполнении сборки из командной строки Visual Studio программа собирается в два этапа. Сначала запустите cl /c /EHsc MathLibrary.cpp , чтобы скомпилировать код и создать объектный файл с именем MathLibrary.obj. (Команда cl вызывает компилятор Cl.exe, а параметр /c дает указание компилировать без компоновки. Дополнительные сведения см. в разделе Параметр /c (компиляция без связывания). Во-вторых, запустите файл lib MathLibrary.obj , чтобы связать код и создать статическую библиотеку MathLibrary.lib. (Команда lib вызывает диспетчер библиотек, Lib.exe. Дополнительные сведения см. в разделе LIB Reference.)

Создание консольного приложения C++, ссылающегося на статическую библиотеку

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio

В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.

В верхней части диалогового окна задайте для фильтра Тип проекта значение Консоль.

В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице в поле Имя введите имя проекта MathClient.

После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2017

В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.

В диалоговом окне Добавление нового проекта выберите Установленные > Visual C++ > Классическое приложение для Windows. На центральной панели выберите Мастер классических приложений Windows.

В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Консольное приложение (EXE) .

В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, если он установлен.

После создания консольного приложения будет создана пустая программа. Имя исходного файла будет совпадать с ранее выбранным именем. В этом примере он имеет имя MathClient.cpp .

Создание консольного приложения C++, ссылающегося на статическую библиотеку, в Visual Studio 2015

В обозревателе решений щелкните правой кнопкой мыши узел верхнего уровня Решение StaticMath, чтобы открыть контекстное меню. Выберите пункты Добавить > Новый проект, чтобы открыть диалоговое окно Добавить новый проект.

В диалоговом окне Добавление нового проекта выберите Установленные > Visual C++ > Win32. В центральной области выберите Консольное приложение Win32.

В диалоговом окне Мастер приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения выберите в поле Тип приложения пункт Консольное приложение. В разделе Дополнительные параметры снимите флажок Предварительно откомпилированный заголовок, а затем установите флажок Пустой проект. Чтобы создать проект, нажмите кнопку Готово.

Чтобы добавить исходный файл в пустой проект, откройте контекстное меню проекта MathClient в обозревателе решений, а затем выберите команду Добавить > Новый элемент.

В диалоговом окне Добавление нового элемента выберите пункт Visual C++ > Код. В центральной области выберите Файл C++ (.cpp) . Укажите имя исходного файла, например MathClient.cpp, и нажмите кнопку Добавить. Отобразится пустой исходный файл.

Использование функциональности из статической библиотеки в приложении

Использование функциональности из статической библиотеки в приложении

Для использования математических процедур из статической библиотеки необходимо сослаться на эту библиотеку. В обозревателе решений откройте контекстное меню проекта MathClient, а затем выберите команду Добавить > Ссылка.

В диалоговом окне Добавление ссылки перечислены библиотеки, на которые можно создать ссылку. На вкладке Проекты перечислены проекты текущего решения и все библиотеки, на которые они ссылаются. На вкладке Проекты установите флажок MathLibrary, а затем нажмите кнопку ОК.

Перейдите на страницу свойств Свойства конфигурации > C/C++ > Общие. В свойстве Дополнительные каталоги включаемых файлов укажите путь к каталогу MathLibrary или найдите этот каталог.

Чтобы найти путь к каталогу, выполните указанные ниже действия.

Откройте раскрывающийся список значений свойства Дополнительные каталоги включаемых файлов, а затем выберите Изменить.

В диалоговом окне Выбор каталога перейдите на уровень вверх и выберите каталог MathLibrary. Затем нажмите кнопку Выбрать папку, чтобы сохранить выбор.

В диалоговом окне Дополнительные каталоги включаемых файлов нажмите кнопку ОК.

Чтобы выполнить сборку исполняемого файла, выберите в строке меню команду Сборка > Собрать решение.

Запуск приложения

Запуск приложения

Убедитесь в том, что проект MathClient выбран в качестве проекта по умолчанию. Чтобы выбрать его, в обозревателе решений откройте контекстное меню проекта MathClient и выберите команду Назначить запускаемым проектом.

Чтобы запустить проект, в строке меню выберите Отладка > Запуск без отладки. Выходные данные должны выглядеть примерно так:

В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017 (работать будет и с более новыми версиями Visual Studio).

Шаг №1: Создаем папку для хранения библиотеки

Создаем папку Libs на диске C ( C:\Libs ).

Шаг №2: Скачиваем и устанавливаем библиотеку



Шаг №3: Указываем путь к заголовочным файлам библиотеки

Открываем свой любой проект в Visual Studio или создаем новый, переходим в "Обозреватель решений" > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > "Свойства" :


В "Свойства конфигурации" ищем вкладку "С/С++" > "Общие" . Затем выбираем пункт "Дополнительные каталоги включаемых файлов" > нажимаем на стрелочку в конце > "Изменить" :


В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:


Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в нее ( C:\Libs\SDL2-2.0.9\include ) и нажимаем "Выбор папки" , а затем "ОК" :



Шаг №4: Указываем путь к файлам с реализацией библиотеки

Переходим на вкладку "Компоновщик" > "Общие" . Ищем пункт "Дополнительные каталоги библиотек" > нажимаем на стрелочку в конце > "Изменить" :


Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:\Libs\SDL2-2.0.9\lib\x86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86 . Даже если у вас Windows разрядности x64, указывать нужно папку x86 . Затем "Выбор папки" и "ОК" :


После этого переходим в "Компоновщик" > "Ввод" . Затем "Дополнительные зависимости" > нажимаем на стрелочку в конце > "Изменить" :


В появившемся текстовом блоке вставляем:


Затем переходим в "Компоновщик" > "Система" . После этого "Подсистема" > нажимаем на стрелочку вниз > выбираем "Консоль (/SUBSYSTEM:CONSOLE)" > "Применить" > "ОК" :



Шаг №5: Копируем dll-ку в папку с проектом

Переходим в папку x86 ( C:\Libs\SDL2-2.0.9\lib\x86 ), копируем SDL2.dll и вставляем в папку с вашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio, нажмите ПКМ по названию вашего проекта > "Открыть содержащую папку" :


Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):


Шаг №6: Тестируем

Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:

Рассмотрен по шагам процесс создания в Visual Studio файла динамически загружаемой библиотеки *.dll и методы вызова функций из неё. Все описанное далее делается на примере среды разработки Visual Studio 2003 Version 7.1.3088, но также подходит и к Visual Studio 2005. Для простоты папки создаваемых проектов будут находиться в директории C:\VSPROJ\.

[Создание библиотеки DLL]

1. File -> New -> Project, в дереве Project Types: выбираем Visual C++ Projects -> Win32, в окошке Templates: выбираем Win32 Console Project. В поле Name: вводим имя проекта для DLL, например MyDLL, в поле ввода Location: выбираем путь C:\VSPROJ (можно воспользоваться кнопкой Browse. ). Жмем ОК.

DLL-VisualStudio01.PNG

2. Появится окошко мастера настройки свойств проекта Win32 Application Wizard - MyDLL. Щелкаем на Application Settings, Application type: выбираем DLL, в Additional options: ставим галочку Empty project, жмем Finish.

DLL-VisualStudio02.PNG

3. Создадим заголовочный файл для модуля наших функций в создаваемой DLL. В дереве браузера проекта выбираем Header Files -> Add -> Add New Item. в дереве Categories: выбираем Visual C++ -> Code, в шаблонах Templates: выбираем Header File (.h). В поле Name: вводим любое имя файла, например mydllmodule, жмем Open.

DLL-VisualStudio03.PNG

namespace dllfuncs
class DummyClass
public :
// Делаем бип
static __declspec(dllexport) void ShortBeep ( void );

Вариант без использования классов:

__declspec(dllexport) void ShortBeep ( void );
__declspec(dllexport) void Msg ( char * msgstr);

4. Создадим файл для модуля наших функций в создаваемой DLL, в котором будет сам код функций. В дереве браузера проекта выбираем Source Files -> Add -> Add New Item. в дереве Categories: выбираем Visual C++ -> Code, в шаблонах Templates: выбираем C++ File (.cpp). В поле Name: вводим то же самое имя файла, которое вводили на шаге 3 - mydllmodule, жмем Open.

DLL-VisualStudio04.PNG

Создастся новый файл, к котором будет код функций, добавляемых в файл DLL. Вводим в него следующий текст:

using namespace std;

namespace dllfuncs
void DummyClass::ShortBeep( void )
Beep(1000,100); //частота 1000 Гц, длительность 100 мс
>

void DummyClass::Msg( char * msgstr)
MessageBox(NULL, msgstr, "Message from DLL" , MB_OK);
>
>

Вариант без использования классов:

using namespace std;

void ShortBeep( void )
Beep(1000,100); //частота 1000 Гц, длительность 100 мс
>

void Msg( char * msgstr)
MessageBox(NULL, msgstr, "Message from DLL" , MB_OK);
>

После всех этих действий появится папка C:\VSPROJ\MyDLL\, в которой будут находиться файлы mydllmodule.cpp и mydllmodule.h, а также конфигурационные файлы проекта MyDLL.

5. Чтобы наш проект скомпилировался в DLL, это должно быть настроено в свойствах проекта. Проверим настройки: MyDLL -> Properties. -> Configuration Properties -> General -> Configuration Type должно быть установлено в Dynamic Library (.dll). Жмем OK.

DLL-VisualStudio05.PNG

6. Теперь скомпилируем нашу библиотеку Build -> Build MyDLL. В папке C:\VSPROJ\MyDLL\Debug появятся два файла MyDLL.dll и MyDLL.lib. Первый файл MyDLL.dll - динамически загружаемая библиотека наших функций, она должна находится в папке исполняемого файла, который использует эти функции (см. [Создание приложения, которое использует функции из DLL]). Второй файл MyDLL.lib - статическая библиотека, которая может быть присоединена на этапе компиляции к приложению, использующему функции проекта MyDLL (см. [Создание приложения, которое использует функции из статической библиотеки lib]).

[Создание приложения, которое использует функции из загружаемой DLL]

Теперь создадим простую демонстрационную программу, которая будет вызвать функции из нашей DLL.

1. File -> New -> Project, в дереве Project Types: выбираем Visual C++ Projects -> Win32, в окошке Templates: выбираем Win32 Console Project. В поле Name: вводим имя проекта для приложения, использующего загрузку DLL, например DLLtest, в поле ввода Location: выбираем путь C:\VSPROJ (можно воспользоваться кнопкой Browse. ). Также выберем радиокнопку Add to Solution, это просто добавит в нашу группу проектов (в котором уже есть проект MyDLL) новый проект DLLtest. Жмем ОК.

DLL-VisualStudio06.PNG

2. Настроим свойства тестового приложения. Выберите тип приложения Console application и нажмите Finish.

DLL-VisualStudio07.PNG

После этого автоматически создастся папка C:\VSPROJ\DLLtest\, в ней появится файл DLLtest.cpp, и туда введется пустой код тела функции _tmain. В функцию _tmain мы впоследствии добавим вызовы функций из модуля MyDLL.

3. Нужно настроить в проекте DLLtest ссылки на загружаемую DLL. Щелкаем правой кнопкой на папку DLLtest в дереве Solution Explorer - DLLtest, выберем Add Reference. откроется окно выбора внешних ссылок на загружаемые библиотеки. На закладке Projects выберите MyDLL c:\Vsproj\MyDLL\ и нажмите кнопку Select, а затем OK. В проекте DLLtest в дереве проекта появится папка References и подпапка MyDLL, в которой с помощью Object Browser можно просмотреть функции из нашей библиотеки MyDLL.

DLL-VisualStudio08.PNG

DLL-VisualStudio09.PNG

Весь код для загрузки DLL и инициализации указателей на используемые функции будет сгенерирован автоматически в процессе компиляции приложения.

4. Вставим в приложение вызовы функций Msg и ShortBeep, для этого добавим в модуль DLLtest.cpp включаемый заголовок mydllmodule.h, и установим добавочные пути поиска файлов заголовков проекта DLLtest. Жмем правую кнопку на DLLtest -> выбираем Properties -> Configuration Properties -> C/C++ -> General -> Additional Include Directories -> $(ProjectDir)\..\MyDLL и жмем OK.

DLL-VisualStudio10.PNG

Добавим в модуль DLLtest.cpp вызовы функций ShortBeep и Msg, код модуля DLLtest.cpp получится следующий:

// DLLtest.cpp : здесь определена точка входа для консольного приложения.
//

using namespace std;

int _tmain( int argc, _TCHAR* argv[])

dllfuncs::DummyClass::ShortBeep();
dllfuncs::DummyClass::Msg( "Hello, world!" );
return 0;
>

Вариант без использования классов:

// DLLtest.cpp : Defines the entry point for the console application.
//

using namespace std;

int _tmain( int argc, _TCHAR* argv[])
ShortBeep();
Msg( "Hello, world!" );
return 0;
>

[Пути поиска библиотек DLL при запуске приложения]

При запуске приложения Windows выполняет поиск библиотек DLL в следующей последовательности:

1. Каталог, в котором находится исполняемый модуль текущего процесса.
2. Текущий каталог.
3. Системный каталог Windows (обычно это папка System32). Путь к этому каталогу извлекается с помощью функции GetSystemDirectory.
4. Каталог Windows. Путь к этому каталогу извлекается с помощью функции GetWindowsDirectory.
5. Каталоги, указанные в переменной среды PATH.

Примечание: переменная среды LIBPATH не используется.

[Ошибки в проектах с DLL]

1. <имя_программы> fatal error LNK1104: cannot open file 'путь_до_папки_проекта_DLL\Debug\имя_файла_библиотеки.lib', например:

DLLtest fatal error LNK1104: cannot open file '\Vsproj\MyDLL\Debug\MyDLL.lib'

DLL-VisualStudio12.PNG

Проблема решается, если положить в путь поиска нужную DLL (для нашего примера файл MyDLL.dll нужно положить в папку C:\VSPROJ\DLLtest\). Самое лучшее решение - настроить команду в Post-Build Event, которая будет автоматически выполнить копирование DLL в папку отладки программы, которая использует эту DLL. Настраивается Post-Build Event просто, процесс по шагам, на нашем примере проектов MyDLL и DLLtest (предполагается, что обе папки проектов находятся на одном уровне в файловой системе, и входят в один Solution среды разработки Visual Studio, см. [3]):

1. Сначала нужно настроить порядок компиляции проектов в Solution. DLL должна компилироваться первой. Порядок компиляции настраивается через свойства Solution, контекстное меню Project Build Order.

DLL-VisualStudio13.PNG

Порядок проектов в списке можно поменять с помощью закладки Dependencies, которая определяет, какой проект от какого зависит. Первым в списке в нашем примере должен быть проект MyDLL.

2. Теперь осталось в проекте MyDLL настроить Post Build Event, копирующее результат компиляции - файл MyDLL.dll в папку Debug проекта DLLtest. Щелкаем правой кнопкой в Solution Explorer на проекте MyDLL, выбираем Properties -> Configuration Properties -> Build Events -> Post-Build Event -> вставляем в поле Command Line строку cmd /C copy /Y $(TargetPath) $(ProjectDir)\..\DLLtest\Debug\$(TargetFileName).

DLL-VisualStudio14.PNG

[Как отлаживать код DLL в Visual Studio]

В IDE есть приятная возможность отладки DLL по тексту исходного кода, однако это настраивается не слишком очевидно. Процесс по шагам (на нашем примере проектов MyDLL и DLLtest).

1. Сначала нужно задать при отладке стартовым приложением в Solution проект с DLL.

2. Нужно убедиться, что оба проекта MyDLL и DLLtest скомпилированы в конфигурации для отладки Debug.

3. Нужно настроить в свойствах проекта MyDLL запуск внешнего приложения, вызывающего нашу DLL. Щелкаем правой кнопкой в Solution Explorer на проекте MyDLL, выбираем Properties -> Configuration Properties -> Debugging -> в поле Command вводим строку $(ProjectDir)\..\DLLtest\Debug\DLLtest.exe.

Теперь можно ставить точки останова в исходном коде DLL, и отлаживать его, как обычный код. Если у Вас не работает отладка по коду DLL, то возможно, что-то не так с символами отладки (отладочной информацией). Если отладочная информация по коду DLL недоступна, то точки останова в DLL будут в виде коричневых кружков со знаками вопроса. Разобраться с проблемой загрузки символов может помочь просмотр модулей Debug -> Windows -> Modules. На скриншоте показана как раз такая проблема с отладкой.

Для тех, кто пропустил: Создание своих библиотек в Visual Studio для DirectumRX (DLL для начинающих - часть 1). На этот раз мы попробуем создать небольшой проект с использованием Windows Forms.

Без лишних слов и вступлений.

Поехали!

Открываем Visual Studio и создаем новый проект.

У меня проект будет называться TestWindowsForms.



На этот раз структура проекта несколько отличается от библиотеки классов, а точнее у нас появились

  • класс формы Form1,
  • конструктор формы Form1.Designer.cs,
  • метод-конструктор класса Form1(),
  • методы Dispose(bool), InitializeComponent().

Подробнее по структуре приложения можно почитать например на сайте metanit в разделе - "Работа с формами".


Пишем приложение

Не будем ходить вокруг да около, давайте уже что-нибудь напишем, пусть это будет простенький ProgressBar.

Открываем "Панель элементов" -> "Все формы Windows Forms", ищем компонент ProgressBar и перетаскиваем его на форму.



Также нам понадобится кнопка, ну и дополнительно можно привести имена формы, progress и остального к более или менее читаемым. У меня получилось как-то так:



Переходим в класс ProgressForm() и напишем небольшую инициализацию, где зададим начальные значения progressBar, а также создадим переменную для отслеживания нажатия кнопки Stop:

Далее добавим код на нажатие кнопки Stop, а также функцию, которая будет возвращать нам результат нажатия этой кнопки:

Также напишем функцию NextStep(), чтобы двигать наш progress вперед:

Итак, что-то уже получилось, осталось только собрать.

Открываем свойства проекта и указываем "Тип выходных данных" = Библиотека классов и собираем решение.



Чтобы в DirectumRX стали доступны подписи функций, как на картинке ниже,


в разделе "Сборка" необходимо поставить галочку "XML-файл документации" и в дальнейшем подгрузить собранную XML к DLL в сторонних библиотеках.



Все собираем, готовый результат — это 3 файла (если поставили галочку XML): dll, pdb и xml.


DirectumRX

Переносим файлы на сервер с DirectumRX и подключим к тестовому модулю. Поскольку в нашей DLL мы работаем с System.Windows.Forms, нам понадобятся 2 файла:

  • System.Windows.Forms.dll,
  • System.Windows.Forms.xml.


Обратите внимание на область действия библиотек.

Т.к. System.Windows.Forms это не Web библиотека, да и наша сборка тоже к Web-у никакого отношения не имеет, доступность сборки нужно ограничить, только Desktop-клиентом.

На обложке модуля я создал простое действие с функцией, которое будет получать progressBar и в цикле его сдвигать (не забудьте подключить System.Windows.Forms):



Запускаем и смотрим, что получилось:

Самая простая версия ProgressBar готова!

Можно в VS добавить функции по настройке progressBar:

А можно просто получить progressBar в DirectumRX и настроить его там, что, на мой взгляд, несколько удобнее:

Можно добавить Label и писать дополнительную информацию туда или подключить другой стиль окна и компонент и т.п.

На текущий момент Desktop-клиент DirectumRX уходит на задний план, т.к. приоритет развития это Web-клиент, НО.

Читайте также: