в Vista (SP2) 64-разрядная версия: почему мой кэш сборки C / C ++ Runtime (CRT) не виден моему приложению? - PullRequest
0 голосов
/ 10 мая 2011

Привет всем экспертам VC ++ и Windows!;)

Во-первых, мой опыт работы: Vstudio, C & C ++, Windows. (Так что вы можете научиться у меня, если хотите).После 5 дней пробовать всевозможные возможности, форумы и исправления и даже менять платформы O / S, я решил опубликовать здесь (или выпрыгнуть из окна!) Я в AGONy, пытаясь решить эту проблему, так какзадерживая мою фактическую работу по развитию !!,:)

Soo .. Сценарий: Машина разработки, на которой возникает проблема: ОС: 64-разрядная ОС Windows Vista с пакетом обновления 2 (хотя идентичная проблема возникает на 32-разрядной виртуальной машине XP SP2, работающей с использованием VMWare).Разработка IDE: Visual Studio 2008 с установленным пакетом обновления 1. Выходной двоичный тип: .DLL (его предназначение - стать плагином для разработки 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.


Теперь мой вопрос к этому посту: когда я динамически связываю CRT в VStudio 2008, а затем пытаюсь загрузить плагин с помощью rnnign RealStudio - проклятая вещь просто не может найти СторонуКАТАЛОГ В СБОРЕ для 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 и загрузить егонаверх ??????

ПОМОГИТЕ!?!?!пожалуйста ..

Заранее благодарен за помощь в том, чтобы снова стать здравомыслящим!

Динеш

1 Ответ

0 голосов
/ 17 декабря 2011

создайте свой управляемый проект для платформы x86.Я имею в виду, не создавайте его для "Любого процессора".

...