Статическая библиотека - Visual Studio 2005 / 6.0 совместимость - PullRequest
0 голосов
/ 08 октября 2008

В прошлом мы сталкивались с некоторыми проблемами при использовании библиотеки DLL, созданной с помощью Visual Studio 2005, в нашем приложении Visual Studio 6.0 (DLL-библиотека VS2005 была, конечно, C ++ неуправляемой). По вашему мнению, можем ли мы столкнуться с такой же проблемой, если библиотека статическая (* .lib), а не динамическая?

Ответы [ 3 ]

1 голос
/ 02 ноября 2009

Microsoft рекомендует, чтобы неуправляемые библиотеки DLL были скомпилированы с тем же CRT / STL, что и основное приложение. И основное приложение, и DLL должны использовать динамическое связывание с CRT.

Если в DLL реализован чистый С-интерфейс или СОМ-интерфейс, то можно использовать библиотеки DLL из другой версии Visual Studio. Но если DLL не использует статическое связывание CRT, то для этого потребуется наличие CRT-dll.

1 голос
/ 08 октября 2008

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

0 голосов
/ 08 октября 2008

Это зависит от того, какие проблемы, конечно. Есть некоторые конфликты, которые чаще встречаются в DLL, а некоторые - в статических библиотеках. Если вы используете одну и ту же версию Microsoft SDK, это минимизирует проблемы.

...