У нас есть DLL, созданная с помощью MS Visual Studio 2010, в режиме выпуска. Мы предоставляем эту DLL различным клиентам вместе с файлом .lib. Функции в DLL экспортируются с:
extern "C" __declspec (dllexport) int analysis (int id);
У наших клиентов есть два приложения, которые используют эту DLL. Оба эти приложения импортируют функции DLL, используя:
extern "C" __declspec (dllimport) int analysis (int id);
Одно из этих приложений построено с использованием MS Visual Studio 2010. Это приложение может быть успешно создано как в режиме отладки, так и в режиме выпуска.
К сожалению, другое приложение должно использовать MS Visual Studio 2005 в качестве среды сборки. В этом приложении сборка релиза может быть успешно построена, однако при попытке выполнить сборку в режиме отладки мы получаем ошибки компоновщика:
LNK2019: неразрешенный внешний символ __imp_analyze, на который ссылается функция «void __cdecl process (char const *, char const *)» (? Process @@ ABCERFG0 @ Z) * 1018 *
Может кто-нибудь помочь мне понять, чего нам здесь не хватает? Мы экспортируем функции способом, который не переносится между компиляторами? Какое решение?
С уважением,