В Vista (SP2) 64-разрядная версия. Почему кэш сборки C/C++ Runtime (CRT) не виден моему приложению?
Привет всем экспертам VC++ и Windows!;)
Во-первых, мой опыт работы: Vstudio, C & C++, Windows.(Так что вы можете поучаствовать со мной, если хотите). После 5 дней пробовать всевозможные возможности, форумы и исправления и даже менять платформы O/S, я решил опубликовать здесь (или выпрыгнуть из окна!) Я в AGONy, пытаясь решить эту проблему, так как задерживая мою фактическую работу по развитию!!,:)
Soo.. sceratio: Машина разработки, на которой возникает проблема: ОС: Windows Vista 64-разрядная с SP2 (даже если идентичная проблема возникает на 32-разрядной виртуальной машине XP SP2, работающей с использованием VMWare. Разработка IDE: Visual Studio 2008 с пакетом обновления 1 (SP1) Установлен. Выходной двоичный тип: .DLL (его предназначение - стать плагином для dev. IDE с именем RealStudio)
Проблема / проблема: я занимаюсь разработкой 32-битной C++ DLL под управлением VStudio 2008. Она должна включать в себя довольно среднюю библиотеку C++ под названием ASDCP(используется для обработки аудио / видео кодеков), которая написана на PURE C++ и содержит встроенная поддержка для сборки на Win32, Linux, MacOS и т. д.
Теперь библиотека ASDCP использует стандартную библиотеку C++ (хранится в файлах MSVCP90.dll и.lib). Поэтому, когда я создаю свой собственный плагин (DLL) и разрешаю его вызывающему приложению (называемому RealStudio, еще одна среда разработки), БЕЗ библиотеки ASCP (и, следовательно, нет необходимости в подключении стандартных библиотек C++), она работает нормально., но когда я добавляю код из библиотеки ASDCP и выбираю для STATIC Link(/MT) библиотеки времени выполнения C++, а затем загружаю плагин и запускаю RealStudio, он теряет память - возможно, "нарушение прав доступа" - вероятно, вызвано некоторым несоответствием между различными DLL.
Теперь мой вопрос к этому посту: когда я динамически связываю ЭЛТ в VStudio 2008, а затем пытаюсь загрузить плагин с помощью rnnign RealStudio- чертовски просто не удается найти Side-by-Size ASSEMBLY CACHE для Microsoft.CRT.VC90!! Я работал со всеми файлами манифеста, вставил файл манифеста в DLL, проверил (примерно 10 раз!) Версии CRT в кеше сборок WinSxs, что противоречит моим требованиям к файлу манифеста / зависимости.
Но почему-то...... RealStudio(RunAs Admiistrator) не может загрузить мои библиотеки CRT 9 (в частности MSVCP90.dll). Я провел около 15 часов на MSDN и других форумах, рассматривая проблемы и решения, связанные с улыбками, И внедрял решения, рекомендованные модераторами форумов Microsoft. но безрезультатно.
Итак... КАК вы получаете 32-битную C++ DLL, работающую под 64-Windows(Vista SP2), чтобы "увидеть" кэш Assembl для соответствующей зависимости CRT и загрузить его??????
ПОМОГИТЕ!?!?! Pleasee..
Заранее благодарен за помощь в том, чтобы снова стать здравомыслящим!
Динеш
1 ответ
Создайте свой управляемый проект для целевой платформы x86. Я имею в виду, не создавайте его для "Любого процессора".