Не удается найти dll библиотеку компилятора ресурсов
Когда я пытаюсь открыть представление ресурсов проекта VC ++ 2012 (MFC) для редактирования ресурсов, я получаю эту ошибку: «Не удается найти DLL компилятора ресурсов. Пожалуйста, убедитесь, что путь правильный.
Я нашел более ранний вопрос по SO: «VS2010:« Не удается найти DLL компилятора ресурсов. Пожалуйста, убедитесь, что путь указан правильно ». И многие другие похожие через Google, но ни один из советов, приведенных там, не помогает. Делал дважды ремонт моя установка VS2012, пробовал все настройки реестра, упомянутые в статьях. Похоже, что DLL нужна rcdll.dll, нашел его в нескольких каталогах Windows SDK Bin, добавил их в системный путь (как 32-битный, так и x64 каталог) и до сих пор ничего.
Потрачено более 4 часов на эту проблему. Есть что-нибудь еще, чтобы попробовать? Спасибо!
3 ответы
Эта тема упоминает проблему с реестром:
Мне удалось воспроизвести проблему на моем компьютере с установленной 7-разрядной версией Windows 1 с пакетом обновления 64 (SP2010) и VS1 с пакетом обновления XNUMX (SPXNUMX).
Мне пришлось изменить следующие записи реестра из
Я удалил v7.0 вместе со всеми его подразделами. И проблема решена.
@whiplash Я считаю, что идея состоит в том, чтобы убедиться, что эти ключи ссылаются на каталог, в котором вы rcdll.dll собственно, с текущей версии до v7.0A в вашем случае - ФонК
Изменение ключа реестра для отражения каталога установки 7.0A помогло. Перезапустил VS2010, и файл .rc открылся просто отлично! Огромное спасибо! - ремень кнута
Создан 09 июля '14, 21:07
Я пробовал то же самое без везения. Однако изменение ключа регистрации, как указано @VonC, решило проблему . возможно, не правильно, но оно работает. - Дж. Э. Картер II
Ответ VonC полезно, но в моем случае это не решило проблему. Был еще один ключ реестра, который нужно было изменить.
Чтобы найти этот ключ, я искал regedit для v6.0A так как это была версия в пути в моем диалоговом окне ошибки.
Путь к диалогу был C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\rcdll.dll
Как только ключ, содержащий v6.0A был найден, я заменил путь на тот, что был на моей машине:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
Я также обновил строки версии, чтобы они были v7.0A or 7.0.30319 в зависимости от первоначального значения. Я нашел несколько строк версии в подразделах результатов поиска, поэтому я также применил изменения и там.
Я следил за учебником Win32 API от Forger и решил открыть menu_one.rc файл, чтобы увидеть его содержимое из VS2010, и получил эту ошибку:
Я дважды проверил оба места, и ни один из файлов на самом деле не существует. Единственные имеющиеся у меня копии rcdll.dll находятся по адресу:
Я попытался выполнить ремонтную установку Windows SDK , но это не устранило проблему. Что я должен делать?
В этой ветке упоминается проблема реестра:
I had been able to reproduce the issue with my pc with Windows 7 SP1 64 bit and VS2010 Sp1 installed.
What I had to is modify the following registry entries from
And there were 2 keys under
I deleted v7.0 along with all its subkeys. And the problem is solved.
@whiplash Я считаю, что идея состоит в том, чтобы убедиться, что эти ключи ссылаются на каталог, в котором вы на rcdll.dll самом деле, с текущей версией v7.0A в вашем случае
Изменение раздела реестра, чтобы отразить каталог установки 7.0A, помогло. Перезапустил VS2010, и файл .rc открылся нормально! Огромное спасибо!
Я попробовал то же самое, но безуспешно. Однако изменение ключа reg, указанное @VonC, устранило проблему . возможно, не правильно, но работает.
Ответ VonC полезен, но в моем случае он не решил проблему. Был еще один ключ реестра, который нужно было изменить.
Чтобы найти этот ключ, я искал Regedit для v6.0A так что была версия в пути на моем диалоге ошибки.
Путь диалога был C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\rcdll.dll
После того, как ключ, содержащийся, v6.0A был найден, я заменил путь тем, который был на моей машине:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
Я также обновил строки версии, чтобы они были v7.0A или в 7.0.30319 зависимости от исходного значения. Я нашел несколько строк версии в подключах моего результата поиска, поэтому я применил изменения и там.
Решение
По какой-то причине ТАК зарегистрировал меня под другой учетной записью, когда я разместил вышеупомянутый вопрос. Не буду утверждать мой собственный ответ, чтобы не давать баллов самому себе.
В конце концов выяснили, что через час или около того, отслеживая все обращения к файлам и реестру, которые выполняет VS2012 devenv.exe, с помощью Sysinternals procmon. Оказывается, что VS2012, по крайней мере в моей системе, искал только этот ключ, игнорируя все остальное:
Однажды я установил InstallationFolder укажите там допустимую папку Windows SDK (независимо от того, была ли это версия 7, 7.1 или 8.1 SDK), все начали работать нормально. Что странно, что все остальные посты по аналогичным проблемам предлагалось установить:
ценность CurrentInstallFolder а также Текущая версия какой SDK вы хотели использовать, и он должен был работать. Не так, только вышеупомянутый ключ и значение были прочитаны и соблюдались. Переустановка Windows 7.1 и 8.1 SDK несколько раз также не помогла.
Может быть, это какая-то ошибка в VS2012 Update 4, самая актуальная на момент написания этой статьи. Так много часов потеряно на глупой проблеме, как эта, надеюсь, эта рецензия поможет кому-то еще избежать такой потери.
Итак, сегодня, когда хотел открыть .RC файл (файл с ресурсами) в Visual Studio 2017 я столкнулся с такой ошибкой: "Не удается найти dll библиотеку компилятора ресурсов" (или "Cannot find the resource compiler DLL.", по-интернациональному). Введя эту ошибку в кавычках я обнаружил, что в российском интернете такой фразы вообще не встречается (ну, либо она слишком глубоко зарыта), и решил по-быстрому выложить решение на русском языке.
Итак, как Вы, наверное, поняли, проблема в том, что Вася не может найти библиотеку по пути, указанном в реестре.
Есть 3 способа решить данную проблему:
1) (Это сделал я), просто найти на компе через поиск в проводнике два файла: rcdll.dll и rc.exe (они должны находиться в одной папке) и скопировать их в ту папку, в которой Студия эти файлы ищет.
В моём случае VS искал библиотеку в папке " C:\Program Files (x86)\Windows Kits\10\bin\x86 ", а лежали они в каталоге " C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86 "
АХТУНГ! Если Visual Studio ищет файлы в папке х86 , копируйте туда нужные файлы ИМЕННО ИЗ х86 , а в папку х64 ТОЛЬКО файлы из папки х64 . Ну и, соответственно, в папку arm копировать только файлы из arm , а в arm64 - из arm64 (я не знаю, обязательно ли именно так, не проверял, но лучше не экспериментируйте).
2) Установить Windows 8.1 API: запустить Visual Studio Installer --> Нажать кнопку "Изменить" ("Modify") --> Развернуть список с установленными дополнениями С++ --> установить там галочку в пункте "Windows 8.1 SDK" --> Нажать "Применить" ("Modify"). Таким образом установиться Windows 8.1 SDK. Все записи в реестре должны отредактироваться автоматически.
3) Если этого не произошло, или Windows 8.1 SDK уже установлен, можно открыть редактор реестра и отредактировать ключи, указывающие Студии, где брать эти библиотеки. Ключи находятся в реестре по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\*версия винды*
Кликаем по версии винды и видим несколько ключей. Нужно поменять значение ключа "InstallationFolder".
Меняем его на тот путь, в котором находятся папки " arm ", " arm64 ", " x86 " и " x64 " с файлами " rcdll.dll " и " rc.exe " внутри. (нужно найти эти файлы через поиск в проводнике)
К примеру, у меня это: " C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\ "
Если в ветке " HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows " несколько веток с версией винды, меняете ключ "InstallationFolder" в той, чьё название имела папка, на отсутствие файлов в которой Студия жаловалась. К примеру, моя студия искала файлы в " C:\Program Files (x86)\Windows Kits\ 10 \ ", и поменял я значение ключа "InstallationFolder" в ветке " v10.0 ".
Здравствуйте. Только начал учиться ассемблеру, до этого программировали на первом курсе на С, так вот на втором курсе нам дали ассмблер еще в довесок. Программируем на массом32, сел я значит разбираться с лабораторной,есть пример программы, я настроил проект(по инструкции,вроде все правильно). Сел я писать свою программу,хотя и не очень получается, а потом решил скомпилировать уже готовый пример и посмотреть на это чудо. Начал компиляцию,а он мне выдал ошибку и что с ней делать не понятно. Текст ошибки:
1
Гугл по этому поводу молчит, либо я плохо гуглил,так вот,что это за ошибка и как избавиться от нее? На отрез не хочет компилировать программу. Текст самой программы:
MS VS 2010 C++ ошибка при компиляции
Создаю пустой проект, жму "отладка". И выдает ошибку что exe файл проекта не найден.
Ошибка при компиляции в VS 2010
Доброго времени суток! При попытке скомпилировать в 10-й студии возникает такая ошибка: .
Visual C++ 2010. Ошибка при компиляции.
error C2059: syntax error : 'type' c:\program files (x86)\microsoft visual studio.
"z6.1.exe" (Win32). Загружено "C:\Users\rasperdulin\Documents\Visual Studio 2013\ProjectsASM\z6.1\Debug\z6.1.exe". Символы загружены.
"z6.1.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть PDB-файл.
"z6.1.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть PDB-файл.
"z6.1.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть PDB-файл.
Программа "[10780] z6.1.exe" завершилась с кодом -1356660736 (0xaf230000).
Исправил кусок кода,что вы сказали, но я немного до этого сам покопался. Ну как,нашел в интернете библиотеки массм32 и установил. В построении ошибок нету,но вот в отладке, вот что пишет. Программа запускается и сразу закрывается. Прошел я по этому пути,там все библиотеки лежат,но студия видимо не может что-то в них найти,как быть?
Satros1205, Попробуй начать с такого примера
Если вы имеете ввиду работает ли он с другими языками,то да. Перед попыткой написания программы на асм,я запустил свои старые программулины на С, все прекрасно запустилось. А вот здесь что-то не так, уже весь гугл обшарил,а выполнить лабы мне как-то нужно. а тут даже не в том проблема,смогу ли я написать программу,я ее даже запустить не могу из-за ошибки
Но все равно,программа запускается и сразу же закрывается,не пойму,что ей надо. В построении тоже ошибок нету
ture,
я не использую отладочную информацию, просто запускаю программу в дебаггере и по шагам смотрю за выполнением поэтому могу только посоветовать внимательно прочитать назначение ключей компилятора, да и что может дать эта информация? название переменных? да и судя по используемым регистрам программа написана для DOS, а не для Windows
я не использую отладочную информацию, просто запускаю программу в дебаггере и по шагам смотрю за выполнением поэтому могу только посоветовать внимательно прочитать назначение ключей компилятора, да и что может дать эта информация? название переменных? да и судя по используемым регистрам программа написана для DOS, а не для Windows
И как тогда быть? нам только такие и дали примеры, это считай единственный источник откуда можно хоть что-то подчерпнуть и тот видать загублен.
Mikl___, я медленно соображаю на этой неделе. Нового материала много. Вопросы сформулировать пока не могу, т.к. еще не все прочитал. В общем, я в процессе.
вообще,наверное она все таки правильно работает. У меня в целях лабы это написать программу,а в отчете предоставить листинг программы(что я включаю в настройках проекта),а так же скриншоты дампов памяти до и после выполнения. Я так понимаю,у меня в консольке по правильному ничего и не должно быть. Вот я достал листинг программы и я так понимаю,она работает? Извиняюсь,что так дико туплю,но за ассемблер сел первый раз и еще пока не понимаю многого.
Satros1205,
если программа создается, запускается и при этом система не завешивается -- значит программа работает, гарантией правильности ее работы был бы вывод результата на экран. при этом результат должен совпадать с ожидаемым. но раз вывод результата не предполагается и студенту верят "на слово" тогда, наверное, программа работает
Спасибо всем за помощь, надеюсь эта ошибка больше не вылезет, пойду теперь делать свое задание
Добавлено через 1 час 35 минут
Извиняюсь,что опять беспокою. Вообще в методичке нашел разбор этого примера,листинг программы сошелся, а вот скринов дампа памяти там к сожалению нету. Так вот,подскажите,как в студии вообще можно посмотреть дамп памяти до и после выполнения программы? В инструкции у меня написано,что во время отладки пошагово нужно включить окно "Память", я включаю, но в процессе выполнения все остается на месте,то есть такое чувство,что либо в памяти уже все посчитано, либо он и не считает(но исходя из листинга программы,который все таки говорит о том,что вычисления идут),я склоняюсь к первому варианту. Как мне посмотреть дамп памяти до выполнения программы? Или я не так что-то делаю?
MSVC 2010 ошибка при компиляции Qt проекта
установил qt, все как надо, но при компиляции студия пишет ошибку и ругается на ui.setupUi(this);.
Visual Studio 2010, ошибка компиляции на другом ПК
Всем доброго вечера, столкнулся с такой проблемой, дома имею комп с 64-битным процессором, но винда.
Возникает ошибка при компиляции C++ Builder 2010
Здравствуйте, возникает такая ошибка при компиляции, при чем билдер не выделяет ни одной строки.
Вижуал СИпп 2010 ошибка при компиляции
Приветствую, форумчане! Установил Visual CИ++ работал исправно, ни с того ни с сего выдает при.
Я слежу Учебник по API win32 от theForger, и я решил открыть menu_one.rc файл, чтобы увидеть его содержимое из VS2010, и я получил эту ошибку:
Я дважды проверил оба местоположения, и ни один из файлов на самом деле не существует. Единственные копии rcdll.dll, которые у меня есть, расположены по адресу:
Я пробовал делать восстановить установку Windows SDK, но это не решило проблему. Что я должен делать?
задан 26 мая '12, 22:05
Читайте также: