У меня есть закрытый исполняемый файл (без источника), который был скомпилирован с VC ++ 7.1 (VS2003).Этот исполняемый файл загружает DLL, для которой у меня есть исходный код.
Я пытаюсь избежать компиляции этой DLL с помощью инструментария VS2003, потому что он включает в себя установку этого инструментария на каждую машину, на которой я хочу его скомпилировать, и использование make-файла вместо непосредственного использования нового проекта VS.
Я изменил параметры, такие как библиотека времени выполнения (я использую / MT вместо / MD для предотвращения конфликтов DLL времени выполнения) и некоторые другие языковые переключатели, чтобы поддерживать совместимость со старым компилятором.Наконец, он скомпилирован и прекрасно связан с библиотеками VS2005.
Но потом, когда я попытался запустить его, он вылетел.Причина: DLL отправляет std :: string (а в других местах - std :: vector) обратно в exe, и конфликтующие версии реализации STL вызывают что-то плохое.
Так что мой вопрос: Есть ли способ обойти это?Или я должен продолжать компилировать DLL с помощью инструментария VC7.1?
Я не очень оптимистичен, но, возможно, у кого-то будет хорошая идея по этому поводу.
Спасибо.