Windows portable runtime library что это

Обновлено: 02.07.2024

Please consider filing a bug or asking a question via Launchpad before contacting the maintainer directly.

Original Maintainers (usually from Debian):

  • Debian Remote Maintainers (Почтовый архив)
  • Mike Gabriel
  • Laszlo Boszormenyi (GCS)

It should generally not be necessary for users to contact the original maintainer.

Внешние ресурсы:

Подобные пакеты:

Windows Portable Runtime library (development files)

Другие пакеты, относящиеся к libwinpr-dev

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (ASN1 library) dep: libwinpr-asn1-0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (bcrypt library) dep: libwinpr-bcrypt0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (credentials library) dep: libwinpr-credentials0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (credeui library) dep: libwinpr-credui0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (crt library) dep: libwinpr-crt0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (crypto library) dep: libwinpr-crypto0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (dsparse library) dep: libwinpr-dsparse0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (environment library) dep: libwinpr-environment0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (error library) dep: libwinpr-error0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (file library) dep: libwinpr-file0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (handle library) dep: libwinpr-handle0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (heap library) dep: libwinpr-heap0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (input library) dep: libwinpr-input0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (interlocked library) dep: libwinpr-interlocked0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (io library) dep: libwinpr-io0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (library) dep: libwinpr-library0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (path library) dep: libwinpr-path0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (pipe library) dep: libwinpr-pipe0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (pool library) dep: libwinpr-pool0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (registry library) dep: libwinpr-registry0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (RPC library) dep: libwinpr-rpc0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (sspi library) dep: libwinpr-sspi0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (sspicli library) dep: libwinpr-sspicli0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (synch library) dep: libwinpr-synch0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (sysinfo library) dep: libwinpr-sysinfo0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (thread library) dep: libwinpr-thread0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (timezone library) dep: libwinpr-timezone0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (utils library) dep: libwinpr-utils0.1 (= 1.1.0

git20140921.1.440916e+dfsg1-15ubuntu1) [не amd64, i386] Windows Portable Runtime library (winsock library) dep: libwinpr-winsock0.1 (= 1.1.0

Не могу найти подробную информацию о том, что такое CRT и зачем она нужна.
Чтобы было проще и больше конкретики ограничимся Виндой И компилятором языка Си, что стоит в студии.
Как я понимаю из уже прочитанной информации CRT- библиотека, которая неявно компилируется линкуется вместе с почти любой программой. Нужна она для того чтобы поддерживать программу, во время выполнения.
Какая то прослойка системных вызовов. И я совершенно не понимаю зачем это нужно. Зачем нужна эта прослойка ?
Почему компилятор просто не преобразовывает функции программы вроде malloc и fopen в системные вызовы, зачем нужна какая то прослойка, которую еще и таскать с собой надо, которая еще и не динамическая.
Еще я слышал, что можно даже вроде как написать свою CRT для программы, если сильно захочется. Как это сделать и как это работает ?
Было бы интересно посмотреть на конкретную реализацию CRT что стоит в студии. Или в Gcc, где ее искать ?

Нужна ли подобная библиотека времени выполнения программам написанным на ASM ?
Например скомпилированных MASM.

Ну в гугле в википедии что ли забанили? CRT/RTL.

Для ассемблера такого не надо, там всё делаешь руками, сам, под каждый процессор и под каждую OS. А язык C и является переносимым по большей части как раз из-за наличия CRT. malloc и fopen в языке C везде одинаковы, но всегда разные для конкретной OS .

Свою CRT написать можно, но это требуется довольно редко и для весьма конкретных и специфических случаев.

Если интересно посмотреть на конкретную реализацию CRT что стоит в студии, то она поставляется вместе со студией в виде исходных текстов, хоть обсмотрись.

Нет, не забанили. Я там почти ничего не понял, слишком мало информации, слишком непонятно. Так же как и на других ресурсах англо и русскоязычных.

Что значит переносимым ? Результатом работы компилятора и линковщика студии является обычный PE файл. PE файл не запустится на linux. Там нужен формат elf. О какой переносимости речь, я не понимаю.
Для винды malloc и fopen всегда одинаковы, это одни и те же системные вызовы.

Си это не язык Java, Java файл заработает и на винде и на линуске потому что для каждой Ос будет своя JVM, в которой запускается программа.

wisgest

RoflanDaniil, компилятор не знает и не должен знать, что делает функция, даже если она из системной библиотеки, он должен знать только о том, как её вызывать (какого типа аргументы, в каком порядке передавать…).

Для винды malloc и fopen всегда одинаковы, это одни и те же системные вызовы.
И их аргументы (их типы, последовательность передачи и т. п.) полностью совпадают? Если нет, то нужна прослойка. RoflanDaniil, переносимость исходных текстов. Между API вантуза и линукса такого нет и быть не может. А через CRT очень даже может. pfemidi, ну такая же функция у стандартной библиотеки. Для каждой ОС у каждого компилятора своя стандартная библиотека. malloc и fopen это просто фукнции. Которые в своем коде должны делать системные вызовы.
А для CRT почему то именно выделяют от стандартной библиотеки. И еще заставляют таскать с собой всю библиотеку, даже если программе нужна только одна функция.

RoflanDaniil, malloc и fopen и есть функции из стандартной библиотеки, которые внутри себя дёргают системные вызовы. Но внешне и malloc, и fopen одинаковы в какой бы OS не компилировался исходный текст программы. Поэтому

одинаково хорошо скомпилируется и в Linux, и в Windows, и в QNX, и ещё чёрт знает где, а (упрощённо):

будет компилироваться только в Windows.

И всю библиотеку с собой никто не таскает, таскают только те функции, которые используются в программе. Например если в программе используется только malloc, то код scanf в программу не попадёт.

А CRT помимо того что содержит в себе все функции стандартной библиотеки так же выполняет начальную настройку для дальнейшей благополучной работы этих функций из стандартной библиотеки: устанавливает stack, устанавливает heap, обнуляет статические переменные, регистрирует необходимые обработчики исключений и т.д.

Как уже правильно советовал Illia Nezhyhai про glibc надо почитать. Ну или изучить исходники от Visual Studio как я уже говорил. Потому что рассказывать об этом долго и нудно, лучше уж будет самому один раз увидеть что это такое.

CRT - это реализация стандартной библиотеки Си/С++ для данного компилятора.
ОС обычно пишутся на Си и если в ОС нет реализации функций из стандарта Си, то они реализуются в стандартной библиотеке. Все классы из stdlib С++ реализованы в CRT.

CRT в VS может линковаться как статически так и динамически, в зависимости от опций компилятора. Линкуете статически - у вас распухает ваш исполняемый файл, динамически - пользователь должен предварительно поставить соответствующий vcredist (установку можно встроить в собственный инсталлятор). С точки зрения производительности оба варианта примерно одинаковы.

Вы можете не использовать стандартную библиотеку в принципе (отключив ее опциями компилятора) и работать на прямую с ОС, но это накладывает много ограничений и вы фактически остаетесь с кастрированным вариантом ЯП, т.к. например в С++ даже стандартный new/delete, на сколько я знаю, реализованы в стандартной библиотеке и прямого аналога в ОС нет. Обычно этим никто не заморачивается из-за возникающих проблем, решение которых заметно увеличит время реализации проекта, разве что вам необходимо сделать исполняемый файл минимального размера, максимально быстро стартующий и без зависимостей.

К сожалению, единого метода решения для ошибки «Microsoft Visual C++ Runtime Library» нет, так как причины могут быть разными: отсутствующие или поврежденные компоненты системы, влияние сторонних служб и программ, в некоторых случаях — ошибки в самой запускаемой программе (особенно если она была написана вами лично).

Язык программ, не поддерживающих Юникод и пути к папкам с программой

Этот способ решения часто оказывается результативным для пользователей с русскоязычными версиями Windows 10, 8.1 или Windows 7, при условии, что ошибка Microsoft Visual C++ Runtime Library вызывается какой-то сторонней программой, а не системными компонентами, такими как explorer.exe или SystemSettings.exe.

Изменение языка программ, не поддерживающих Юникод

  1. Если запускаемая игра или программа (или её установщик) находится в папке, путь к которой содержит кириллицу (русские буквы), перенесите её в другое расположение или переименуйте папку, попробуйте запустить. Например, если ваше имя пользователя на русском языке, а файл запускается из папки «Загрузки», то полный путь к ней будет иметь види это может послужить причиной ошибки.
  2. Зайдите в Панель управления (в Windows 10 панель управления можно открыть через поиск на панели задач) — Региональные стандарты, откройте вкладку «Дополнительно» и в разделе «Язык программ, не поддерживающих Юникод» нажмите «Изменить язык системы». Выберите «Английский (США)», примените настройки и перезагрузите компьютер, затем проверьте, решило ли это проблему.

Обратите внимание, что второй метод может решить проблему, но при этом сделать так, что программа или игра будет запускаться на английском языке — обычно в этом случае достаточно найти соответствующую настройку в самой программе, чтобы вернуть русский язык.

Здесь присутствует один нюанс: обычно мы не знаем, какие именно из многочисленных наборов распространяемых компонентов Microsoft Visual C++ послужил причиной проблемы, а потому я рекомендую следующих подход их переустановки:

Если указанные шаги не решили проблему, выполните следующие шаги:

Драйверы видеокарты и DirectX

После установки драйверов, DirectX и перезагрузки компьютера, проверьте, была ли решена проблема.

Дополнительные методы решения проблемы

  • Удалить программы, установленные непосредственно перед появлением ошибки. По отзывам, причиной может быть самое разное стороннее ПО, среди примеров: Intel True Key, программы принтеров HP, антивирусы.
  • Использовать точки восстановления системы при их наличии.
  • Выполнить чистую загрузку (не путать с установкой) Windows. Если при чистой загрузке ошибка исчезает, то причина — какие-то программы в автозагрузке или сторонние службы. Можно включать их группами, пока не выявим, что именно вызывает ошибку. Как именно выполнить чистую загрузку описано в инструкции Чистая загрузка Windows. .
  • Отдельная инструкция для этой же ошибки с кодом R6025 pure virtual function call

Ещё один вариант, для случая, когда ошибку вызывает какой-то системный процесс — создать нового пользователя Windows (лучше, если будет использовано имя на латинице), зайти в систему под ним и проверить, сохраняется ли ошибка у этого пользователя.

Видео инструкция

Надеюсь, проблема была решена. Если это так, буду благодарен комментарию, в котором вы расскажете, что именно оказалось причиной в вашем случае — это может помочь другим пользователям, столкнувшимся с ошибкой.

А вдруг и это будет интересно:

28.01.2021 в 22:31

Есть вопрос к вам по поводу купленного самсунг 980 про и материнки гигабайт аорус мастер z390 так вот нету ни в одной программе ни информации про смарт ни трим ни Ncq ни остального только есть немного инфы в меджикан. у людей на ютюбе эта информация есть

29.01.2021 в 14:49

10.07.2021 в 12:06

В статью можно добавить sxtrace как один из способов.
У меня прога на работе требует vc++ x86 2005ые, но их оказывается есть несколько версий, и с помощью sxtrace можно точно узнать версию требуемой библиотеки.

Что такое ошибка Microsoft Visual C++ Runtime Library

Microsoft-Visual-C-Runtime-библиотека-ошибка-1

Microsoft-Visual-C-Runtime-библиотека-ошибка-2

Microsoft-Visual-C-Runtime-библиотека-ошибка-3

1. Обновите / удалите драйверы дисплея.

Первое, что мы рекомендуем попробовать, это обновить все драйвера дисплея. Есть вероятность, что они устарели или вышли из строя, что вызывает Runtime ошибки. Чтобы обновить их, следуйте этим простым инструкциям ниже:

  1. Щелкните правой кнопкой мыши по Меню Пуск и выберите Диспетчер устройств.
  2. В открывшейся вкладке найдите Видеоадаптеры и разверните раскрывающееся меню.
  3. Найдите две видеокарты (иногда обе), щелкните правой кнопкой мыши и выберите Обновить драйвер.
  4. Windows начнет поиск доступных обновлений и автоматически установит их на ваш компьютер.

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

  1. Выполните первые 2 шага, упомянутых выше. Найдите адаптер дисплея и выберите Удалить.
  2. Следуйте инструкциям на экране и после завершения перезагрузите компьютер.

Вы также можете использовать утилиту IOBit Driver Booster, которая просканирует ваше устройство на наличие отсутствующих драйверов и установит их, при необходимости.

Стартовый экран Driver Booster

Результаты сканирования Driver Booster

Раздел инструментов Driver Booster

2. Проверьте целостность системных файлов.

Как мы уже упоминали в начале, Runtime проблемы могут возникать из-за поврежденных или отсутствующих файлов после некоторых обновлений или случайных манипуляций. Эти файлы необходимы для правильной работы служб Windows. Если некоторые из этих файлов находятся вне их родной среды, то это может стать причиной таких ошибок. Ниже мы будем использовать SFC (Проверка системных файлов) и DISM (Обслуживание образов развертывания и управление ими), которые помогут обнаружить и восстановить отсутствующие компоненты. Вот как:

С помощью SFC

  1. Откройте Командная строка , введя cmd в поле поиска рядом с Меню Пуск кнопку.
  2. Щелкните правой кнопкой мыши по Командная строка и выберите Запуск от имени администратора.
  3. После открытия консоли введите sfc /scannow команду и нажмите Enter.
  4. Когда процесс восстановления будет завершен, перезагрузите компьютер.

С помощью DISM

  1. Откройте Командная строка как мы это делали на предыдущем шаге.
  2. Скопируйте и вставьте эту команду DISM.exe /Online /Cleanup-image /Restorehealth .
  3. Нажмите на Enter и подождите, пока Windows закончит сканирование и исправление.
  4. После этого перезагрузите компьютер и попробуйте открыть проблемную программу снова.

После выполнения обоих этих сканирований попытайтесь загрузить приложение, с открытием которого были проблемы. Если это не поможет, переходите к другим шагам, упомянутым ниже.

3. Переустановите Visual C++ Redistributables.

4. Включите Чистый запуск Windows.

Часто сторонние приложения, загруженные из Интернета, могут конфликтовать с различными частями вашей системы. Даже программа для защиты от вредоносных программ может конфликтовать со службами Windows, вызывая ошибку «Microsoft Visual C ++ Runtime Library». Чистая загрузка позволяет запустить ваш компьютер только со встроенными приложениями и службами. Это помогает определить, вызывает ли проблему какое-то стороннее приложение. Чтобы запустить вашу систему в режиме чистой загрузки, выполните следующие действия:

  1. Нажмите Windows Key + R кнопки одновременно и вставьте msconfig .
  2. Затем в открывшемся окне перейдите в Услуги сверху.
  3. Установите флажок рядом с Не отображать службы Майкрософт и нажмите на Отключить все кнопку.
  4. Теперь перейдите в Общие и выберите Выборочный запуск опцию. Убедитесь, что флажок установлен только рядом с Загружать системные службы.
  5. Нажмите на Применить и OK. Затем перезагрузите компьютер.

Проверьте, появляется ли ошибка сейчас. Если теперь все работает как надо, нужно выполнить те же шаги, отключив каждое приложения одно за другим. Это нужно, чтобы определить какое из них вызывает проблему. Если вы хотите вернуть Windows к настройкам нормального запуска, просто повторите все шаги выше, включив отключенные службы и изменив параметр запуска с Выборочный запуск в Обычный запуск.

4. Переустановите проблемное приложение.

Если вы не можете открыть какое-то определенное приложение (будь то игра или другая сторонняя программа), попробуйте удалить из «Программы и компоненты» и установить его снова. Надеемся, это решит проблему.

5. Отключите режим совместимости.

Изначально режим совместимости - это полезная функция, позволяющая запускать устаревшие приложения на новых версиях ОС. Несмотря на это, некоторые пользователи говорят, что это может вызвать проблемы с Visual C ++. Попробуйте отключить эту функцию ниже:

  1. Найдите приложение, вызвавшее ошибку, затем щелкните на его иконку правой кнопкой мыши и выберите Свойства.
  2. Перейдите в Совместимость и отключите Запустить программу в режиме совместимости с опцию.
  3. Нажмите на Применить и OK внизу.
  4. После этого попробуйте еще раз запустить ранее неисправное приложение.

6. Создайте новую локальную учетную запись.

Еще мы советуем вам создать новую учетную запись пользователя. Иногда новая запись может восстановить определенные настройки и помочь в устранении ошибки. Также обратите внимание, что новые учетные записи не содержат данные из предыдущего аккаунта. Поэтому вам нужно будет переместить все необходимые файлы повторно. После этого вы можете удалить свою исходную учетную запись, если получилось устранить проблему. Ниже вы можете найти шаги для создания новой учетной записи:

  1. Щелкните правой кнопкой мыши на папку Меню Пуск и выберите Параметры. Вы также можете нажать Windows Key + I сочетание клавиш.
  2. Войдите в Учетные записи > Семья и другие пользователи.
  3. На правой панели прокрутите вниз до Другие пользователи раздела и нажмите Добавить пользователя для этого компьютера.
  4. Теперь выберите У меня нет данных для входа этого человека внизу.
  5. Выберите Добавить пользователя без учетной записи Майкрософт внизу.
  6. Затем введите имя пользователя и пароль для нового пользователя и нажмите Далее.
  7. Теперь вы можете переключиться на новую учетную запись (щелкнув на значок пользователя в Меню Пуск) и попробовать запустить неработающую программу снова.

7. Выполните Восстановление системы.

Если вы начали видеть окно с ошибкой после выполнения каких-то изменений или установки программы, то можно выбрать дату, когда все работало нормально, через точку восстановления. Windows хранит резервные копии, которые можно использовать в обход различных проблем. Чтобы воспользоваться ими, выполните следующие действия:

  1. Щелкните правой кнопкой мыши по Этот компьютер и выберите Свойства.
  2. В открывшемся окне перейдите в Защита системы и нажмите на Восстановить.
  3. Затем нажмите Далее и выберите дату, во время которой все работало без проблем. Вы также можете нажать на Поиск затрагиваемых программ, который покажет, что будет изменено после запуска восстановления.
  4. Когда закончите, нажмите Далее и начните Восстановить.

8. Просканируйте свое устройство на наличие вредоносных программ.

Если ни один из предыдущих методов не помог вам избавиться от проблемы с Runtime Library, есть небольшая вероятность, что ваш компьютер заражен нежелательным или вредоносным ПО. Таким образом, стоит просканировать ваше устройство на наличие вредоносных программ и удалить их в случае обнаружения. Мы лично рекомендуем использовать Malwarebytes, который особенно хорош в обнаружении и удалении различных видов угроз. Загрузите его по ссылке ниже:

Заключение

Мы надеемся, что эти 8 методов помогли вам избавиться от всплывающей ошибки. Если вы все еще сталкиваетесь с ошибкой Microsoft Visual C ++ Runtime Library, лучшим решением будет полная переустановка Windows. Это поможет вам установить операционную систему с нуля и устранить маленькие ошибки, которые можно было пропустить во время самостоятельного решения. Если вы когда-нибудь столкнетесь с другими проблемами на Mac или Windows, можете использовать другие статьи на нашем сайте для их исправления.

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