limon_spb
@limon_spb

Как побороть Error: The Side by Side configuration information for dll. C++, Depends?

Здравствуйте, Коллеги!
Столкнулся со странной трудностью, прошу помощи.

Кратко:

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

Error: The Side by Side configuration information for путь к плагину dll.

На моем компьютере, где я собираю проект целиком - все работает и этой ошибки нет.
На всех компьютерах коллег - тоже все ок.
На относительно чистой винде - тоже все ок.
А вот на компьютерах на объекте такая зараза.

Подробнее:

Проект C++, Qt 4.8.6, компилятор Visual Studio 2008. x86. Windows 7.

Структура собранного проекта следующая. Рядом с exe файлом лежат всякие qt'шные dll и dll, которые относятся к ядру. Там же лежит папка plugins, которая содержит dll всех плагинов для проекта, в ней же лежит мой злосчастный плагин.dll.

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

Дополнительные сложности создает то, что объект далеко, там нет интернета, team viewer и т.п. Все что можно - отправлять туда коллеге файлы/архивы и пробовать их запускать.

Подчеркиваю, что весь проект вместе со всеми плагинами собирается из Qt Creator одновременно с моим плагином и с теми же настройками компиляции, грубо говоря одной кнопкой.

Особенности моего плагина: он использует boost. Но boost в него включен не как либы, а вместе с cpp и h - вытаскивал нужные мне части встроенной в boost программкой.

Что я пробовал, поразмыслив и погуглив:
1. Пересобрал все целиком и отправил - не помогло.
2. Взял с моего компьютера msvr90.dll, msvcp90.dll, отправил на объект, чтобы положили рядом с проектом. Результата никакого.
3. Второй ответ вот отсюда. Первый отпадает, т.к. приложение запускается и другие плагины загружаются.
4. Заглянул в манифест dll моего планига и сравнил с другими. Они отличаются, но что это значит, я не знаю. Манифест моего плагина:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
            </requestedPrivileges>
        </security>
    </trustInfo>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> 
        </dependentAssembly>
    </dependency>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.VC90.OpenMP" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> 
        </dependentAssembly>
    </dependency>
</assembly>


Манифест других:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
            </requestedPrivileges>
        </security>
    </trustInfo>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> 
        </dependentAssembly>
    </dependency>
</assembly>


Т.е. в моем плагине есть какой-то блок с Microsoft.VC90.OpenMP. Может в этом дело? Но как жить с этим дальше?

Спасибо!
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
Возможно поможет эта ссылка www.codeproject.com/Articles/43681/Side-by-Side-Co...

Решение от @limon_spb
Оказывается, что при установке 7 винды redist студии идет по умолчанию. Но почему-то не полный, без OpenMP. После установки redist'a - все ок.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы