Ошибки visual studio 2012

Обновлено: 06.07.2024

Когда я отлаживаю свой проект, я получаю следующую ошибку:

"Невозможно скопировать файл" obj\Debug\My Dream.exe "в" bin\Debug\My Dream.exe ". Процесс не может получить доступ к файлу" bin\Debug\My Dream.exe ", так как он используется другим процесс."

Используя Process Explorer, я вижу, что MyApplication.exe отсутствует, но системный процесс все еще использует его, хотя я остановил отладку раньше. Всякий раз, когда я изменяю свой код и начинаю отладку, это произойдет. Если я копирую проект на USB и отлаживаю, он работает нормально.

Я использую Window 7 Professional. С Xp у меня никогда не было этой ошибки.

Тьфу, это старая проблема, которая иногда появляется в Visual Studio. Это укусило меня пару раз, и я потерял часы, перезапускаясь и борясь с VS. Я уверен, что это обсуждалось здесь SO более одного раза. Об этом также говорили на форумах MSDN. Фактического решения не существует, но есть несколько обходных путей. Начните исследование здесь .

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

Мой оригинальный обходной путь - открыть папку bin/Debug и переименовать исполняемый файл. Вы не можете удалить его, если он заблокирован, но вы можете переименовать его. Таким образом, вы можете просто добавить число в конец или что-то еще, что позволит вам продолжать работать без необходимости закрывать все окна и ждать перезагрузки VS. Некоторые люди даже автоматизировали это, используя событие перед сборкой , чтобы добавить случайную строку в конец старого выходного имени файла. Да, это гигантский взлом, но эта проблема становится настолько неприятной и изнурительной, что вы сделаете все что угодно.

Позже, после нескольких экспериментов, я узнал, что проблема возникает только тогда, когда вы строите проект с одним из открытых дизайнеров. Таким образом, решение, которое работало для меня в течение длительного времени и не позволяло мне когда-либо снова сталкиваться с одной из этих глупых ошибок, заключается в том, чтобы я всегда закрывал все окна дизайнеров перед созданием проекта WinForms. Да, это тоже несколько неудобно, но это, безусловно, отнимает у штанов необходимость перезапускать VS дважды в час или более.

Я предполагаю, что это относится и к WPF, хотя я не использую его и лично не сталкивался с этой проблемой.

<конец разглагольствования, направленного ни на кого конкретно>

Я установил VS2012 Premium из нашей подписки MSDN, и он работал нормально первые пару дней, но затем я установил несколько расширений, которые теперь не могу запустить VS2012, и это дает ошибку:

Я запустил его на Windows 7 64 бит.

Я попытался восстановить, удалить и установить снова и ничего. Я попытался восстановить предыдущую системную точку восстановления, но ничего.

расширения я установил я помните:

  • VS10x Код Карты
  • VSCommands
  • визуальный SVN
  • менеджер Nuget

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

  • Web Essentials
  • Редактор Цветовых Тем Visual Studio
  • SlowCheetah
  • мобильный готовый HTML5
  1. кто-нибудь еще имел эта проблема?
  2. есть ли способ удалить расширения из командной строки или программного обеспечения? (Я удалил папку extensions, но это не делает что угодно)
  3. могу я отремонтировать "C:WindowsSysWOW64ntdll - . в DLL"? Это действительно проблема с этой DLL?

Я не смог найти аналогичную проблему в других версиях, и потому что VS2012 является новым, похоже, тоже не так много информации.

он работает сейчас!. Вот что я сделал:--5-->

  1. удалил ключ: [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] . VS2012 загрузка, но затем сбой, прежде чем я мог сделать что-либо еще (ошибка в C:\Windows\syswow64\KERNELBASE.dll )
  2. затем я удалил:
    • [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0]
    • [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0_Config] и начал снова и работает нормально.

Я, очевидно, потерял все свои настройки, но ничего страшного, как я могу теперь сделать какая работа! :)

под управлением devenv.exe С / SafeMode аргумент, вероятно, также исправил бы его.

Я открыл другой .sln а затем вернулся к моему проекту faulting, и он загрузился! Может быть, что-то с неисправным закрытием проекта

удаление всех настроек VS немного жестковато, если все экземпляры visual studio немедленно аварийно завершают работу.

что, вероятно, происходит, когда вы сталкиваетесь с этим, что Visual Studio открывает окно конструктора, который вызвал его сбой в первую очередь. это часто расширение, но это также может быть просто ошибка в VS. Например: я иногда испытываю это при работе с LINQ-to-SQL и открываю конструктор схем базы данных.

просто скопируйте все dte*.olb файлы, из C:\Program файлы (X86)\общие Файлы\Microsoft Shared\MSEnv для C:\Program файлы X86\Microsoft Visual Studio 9.0\Common7\IDE.

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

У меня был аналогичный ntdll.проблема dll . C++ обновление SQL Server .

я исправил это, используя подключение SQL Server OBDC, а не собственный клиент SQL Server 11.0

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

все вышеперечисленные решения не работали для меня, но этот работает.

копировать dte*.olb от C:\Program файлы (X86)\Общие файлы\Microsoft Shared\MSEnv для C:\Program файлы X86\Microsoft Visual Studio 9.0\Common7\IDE.

первый запуск devenv.exe с параметром / SafeMode, затем снимите флажок Разрешить макросы для запуска из "Enviroment - >Add-in/Macros Security" и проверьте!

проблема связана с переменной path. установка переменной path в переменных среды ниже 2048 символов работала для меня.



В этой статье будет рассмотрен ряд багов в реализации стандарта С++11, которые имелись в Visual Studio 2012 и были исправлены в Visual Studio 2013. Таким образом мы теперь можем использовать С++11 так, как в теории предполагается его использовать. Если для обхода багов VS2012 вам пришлось понаписывать «костылей» — теперь их можно убрать.

К сожалению, не все баги были исправлены, кое-что мигрировало из VS2012 в VS2013, а также появились новые баги. Под катом вы найдёте детальный разбор текущего состояния дел.

Больше нет лимита на количество типов в variadic templates

Visual Studio 2013 поддерживает variadic templates в полном объёме, вещи вроде std::function или make_shared больше не имеют лимита на количество аргументов, которые они могут принять. В Visual Studio 2012 этот лимит существовал и был равен 5 (пяти).

Исправлены баги, касающиеся вывода типов

auto терял спецификатор выравнивания

Если вы использовали auto для объявления переменной типа, определяемого выражением __declspec(align(…)), align обрабатывался неверно в VS2012, что приводило к неправильному расположению данных в памяти и случайным крешам.

decltype можно было использовать вместо типа не во всех случаях

Несмотря на то, что тип, определяемый через decltype предположительно должно быть возможно использовать везде, где можно использовать обычные типы, VS2012 не позволяла написать, к примеру, вот такой код:

declval приводил к ошибкам компиляции

Некоторый корректный согласно стандарту С++11 код не компилировался в VS2012 из-за неверной интерпретации declval.
Предположим, вы ходите объявить шаблон is_comparable:

Это не сработает в VS2012, поскольку declval не поймёт, что такое T.

Исправлены баги в умных указателях

Использование лямбда-функции в качестве custom deleter ломало преобразование к типу bool

Если вы использовали лямбда-функции для определение того, что должно случиться при удалении умного указателя, вы не могли использовать этот указатель в контексте преобразование его к типу bool:

Вызов unique_ptr::reset мог привести к двойному удалению

Порядок операций в методе reset не соответствовал порядку, описываему стандартом. Это могло приводить к двойному удалению объекта. Пример:

Вызов метода reset запускает деструктор SelfReferential, который снова вызывает reset. Двойное удаление происходит потому, что метод reset сбрасывает указатель на подконтрольный объект после его удаления, а не до него.

shared_ptr, protected-деструктор и nullptr

Вы не могли создать shared_ptr для класса с protected-деструктором, инициализировав его nullptr:


В Visual Studio 2013 этот код компилируется, как и предполагается стандартом.

Исправлены баги в библиотеке type traits

Неправильная работа is_function

is_function возвращает неверный результат, если переданная ей функция содержит слишком много аргументов:


Также результат ошибочен для функций с calling convention, отличным от дефолтного

Аналогично, is_member_function_pointer не удаётся верно вернуть результат для методов с явно заданным calling convention

is_member_pointer, наоборот, не верно работает с __cdecl-методом:

is_object был определен через is_function, таким образом вышеуказанная ошибка с большим количеством аргументом функции распространяется и на него, приводя к неверному определению объекта.

is_scalar не распознавал nullptr_t

is_scalar<nullptr_t> ошибочно возвращал false в VS2012 – стандарт определяет nullptr_t как скалярный тип.

is_pod неверно понимал void

is_pod ошибочно возвращал true в VS2012, хотя void не является POD-типом

is_constructible возвращал неверные результаты для ссылок

is_constructible вёл себя неверно со ссылочными типами, возвращая false для вещей типа:

Баги в alignment_of и aligned_union

alignment_of в VS2012 генерирует generatee a ложные предупреждения о недоступном деструкторе, если вы используете его на типе с приватным деструктором.
Кроме того, aligned_union работал неверно в VS2012:

aligned_union должен иметь статический член alignment_value, содержащий значения выравнивания для шаблонных аргументов T1, …, Tn. Это, однако, не было реализовано в VS2012.

common_type ошибочно возвращает void

Вместо ошибки компиляции, как это предполагается по стандарту, common_type возвращал void в VS2012:


common_type также возвращает void ошибочно для пользовательских типов, когда преобразование *is* возможно:

result_of не компилируется в некоторых случаях

Если вы решите использовать move-only аргумент с этим шаблоном в VS2012, у вас будут неприятности:

Исправлены ошибки в STL-контейнерах и алгоритмах

minmax_element не работал

Стандартом определяется две версии этого алгоритма:


Они должны возвращать (first, last), где first указывает на наименьший элемент, а last — на наибольший, или make_pair(first, first) — если диапазон пуст. В VS2012, однако, вместо этого возвращалось make_pair(min_element(first, last), max_element(first, last)).

Контейнеры ошибочно требовали от типов элементов обязательного наличия move-конструкторов

Все move-конструкторы контейнеров ошибочно требовали от типа элемента наличия move-конструктора.

Аналогично, операторы доступа к элементам map и unordered_map требовали обязательного наличия move-конструкторов:

Исправлены ошибки, связанные с параллелизацией и асинхронностью

shared_future создаваемая из future

Ещё один баг в VS2012 был в реализации future и shared_future для ссылочных типов и void. Этот баг позволял следующему коду скомпилироваться (что явно ошибочно, поскольку future — это move-only тип):

Утечка памяти в классе thread

Баг, который мог приводить к утечкам памяти при завершении программы. Это случалось потому, что поток создавал, но никогда не уничтожал объект at_thread_exit_mutex, а так же некоторые внутренние структуры данных.

Бесполезные функции wait в future, полученной от promise

Из-за бага в Visual Studio 2012, функции wait_for и wait_until таких future-объетов возвращали future_status::deferred вместо of future_status::timeout or future_status::ready, делая эти методы бесполезными.

atomic-шаблон не мог быть определен для типа без конструктора по-умолчанию
atomics работали медленно

В VS2012 atomic-операции иногда перебарщивали с проверками целостности (делали их там, где это не обязательно). Хотя это и не нарушает стандарта, код работал медленнее, чем мог бы. VS2013 имеет совершенно новую реализацию atomic-операций, которая работает значительно быстрее.

Исправлены ошибки в генерации случайных чисел

В дебаг-режиме mersenne_twister_engine генерировал ошибочный assert, если вы пытались инициализировать его нулём.

Потоковый оператор для subtract_with_carry_engine содержал ошибку, приводящую к неопределенному поведению.

independent_bits_engine и shuffle_order_engine не инициализировали внутренние члены в своих конструкторах перемещения, что иногда приводило к бесконечным циклам.

Исправлены ошибки в библиотеке рациональной арифметики

В библиотеке было найдено несколько багов:

Вы не могли написать следующий код в VS2012

Вместо этого вы были вынуждены обращаться к числителю и знаменателю через их тип:

Ещё одна ошибка была в реализации сравнения.

Таким образом в VS2012 вы должны были быть уверенными, что знаменатель, переданный в шаблон — всегда положительное число.

Ещё один баг был в том, что ratio_equal правильно определял неравенство, но не всегда правильно определял равенство:

И вот ещё одни баг. Когда у вас есть ratio<N, D>, если D — ноль или число, превышающее intmax_t — ваша программ однозначно невалидна. Visual Studio 2012, однако, не определяла такие ошибки:


В реализации Visual Studio, static_assert утверждения, которые должны бы были срабатывать в этих ситуациях, размещены в конструкторе ratio. Но конструктор срабатывает только при создании объекта класса, а в примерах выше этого не происходит.

Аналогично, некоторый код компилируется, хотя и не должен:

Другие ошибки в Visual Studio 2013

В tuple_element не делается проверка выхода за границы

tuple_element<I, array<T, N>> должен проверят, что I < N и не компилироваться, если это не так. Этого не происходило до VS2013.

Неверное преобразование к bool для std::function

В некоторых случаях преобразование могло давать неверный результат в VS2012, поскольку объект не был пуст, когда по идее должен быть им:

Присваивание для rvalues

Visual Studio 2012 не запрещает присваивание для rvalues, как это определено стандартом:

align() неверно обновляет out-параметры

Функция корректно рассчитывает возвращаемый адрес, но неверно обновляет два последних параметра:

time_put не работает с wchar_t

time_put не генерирует вывода когда инициализирован wchar_t.

Заключение

Полный список изменений в VS2013 (не только в C++11) вы можете прочесть вот в этом посте, написанном Stephan Lavavej.

В дополнение к реализации новых возможностей С++11, в Visual Studio 2013 исправлено множество багов в существующей функциональности компилятора и библиотек, от некорректных ошибок компилятора до утечек памяти и низкой производительности. Это однозначно положительная динамика.

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

Всем доброго времени суток!

Вообще, Microsoft Visual C++ — это важный пакет, который позволяет запускать игры, в разработке которых была использована одноименная среда. Естественно, если данного пакета нет — игра у вас не запустится, вызвав ошибку.

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

Внешний вид ошибки / в качестве примера

Внешний вид ошибки Runtime Library / в качестве примера

ускорение ПК

Решение вопросов с Microsoft Visual C++

Ссылки на основные версии пакетов Visual C++ (ручная установка)

Как правило ошибки, связанные с Visual C++, возникают из-за отсутствия определенного пакета (либо, из-за "кривой" установки оного).

Например, GTA V потребует следующих программных компонентов (это доп. требования к тех. характеристикам): Microsoft DirectX, Microsoft Visual C++ 2008, Google Chromium.

Driver Booster - найдено 4 устаревших драйвера, и 1 игровой компонент // пример работы программы

Driver Booster - найдено 4 устаревших драйвера, и 1 игровой компонент // пример работы программы

Кстати, не могу не отметить, что помимо Visual C++ она также устанавливает и обновляет и др. пакеты: DirectX, Microsoft Silverlight, NET FrameWork и т.д. В общем, все те пакеты, из-за которых часто сыпятся ошибки в играх.

Если после обновления пакетов всё равно возникает ошибка

Возможно, нарушена целостность файлов игры (установщика)

Если переустановка компонентов Visual C++ и Driver Booster ничем не помогли, то рекомендую внимательно присмотреться к файлам установщикам самой игры.

Многие ведь скачивают различные репаки, которые далеко от официальных релизов (часть файлов в них изменена, да и не всегда подобные релизы протестированы на десятках машин, чтобы избежать различных конфликтов и несовместимости).

Я бы порекомендовал скачать новый установщик игры и переустановить ее. Перед этим не лишним будет прогнать систему на вирусы и рекламное ПО (нередко, когда вирусы портят системные файлы игры). О том, как лучше и чем проверить расскажу чуть ниже в статье.

Помимо Visual C++, для игр в большинстве случаев, требуется обновленная версия DirectX и пакет NET FrameWork .

Если какого-то из этих пакетов нет (или его компоненты были повреждены), не исключены различные ошибки: то нет "DLL", то приложение не может быть продолжено, то ". Runtime Library. ".

У меня на блоге уже есть парочка статей, посвященных проблемам с NET FrameWork и DirectX, рекомендую проверить и эти пакеты.

Проверяем и обновляем драйвер на видеокарту

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

Дело в том, что "такие" не родные* драйвера, как правило, не обеспечивают полноценной поддержки всех функций (я уж не говорю, что помимо драйверов же, должны установиться различные центры управления).

Но так как у большинства пользователей все работает после инсталляции системы — то никто и не задумывается об этом до появления ошибок и конфликтов ПО.

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

Таблица №1: ссылки на официальные сайты для загрузки видеодрайверов.

Есть два типа поиска и установки драйвера:

  1. можно загрузить и запустить спец. утилиту, которая определит какой нужен вам драйвер;
  2. а можно выбрать драйвер вручную, указав версию ОС и модель карты (об этом мы говорили выше).

Можно автоматически определить какой нужен драйвер (на ПК должен быть установлен JAVA).

Можно вручную указать модель видеокарты и версию ОС.

Проверка компьютера на вирусы и трояны, рекламное ПО

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

Поэтому, рекомендация простая: прогнать систему парочкой антивирусных утилит, которые порекомендую ниже.

Если вирусы будут найдены и обезврежены — может потребоваться переустановка библиотеки Visual C++ (а также NET FrameWork и DirectX).

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

PS

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