Связанная с DLL: ошибка LNK2001: неразрешенный внешний символ - PullRequest
2 голосов
/ 05 января 2012

Я использую Visual Studio 2010 Premium.У меня есть решение с двумя проектами.Одним из них является основной проект, а последний выполняет тесты.Моя задача - построить основной проект для 64-битной платформы и проверить, все ли тесты все еще успешны, в то время как тестовый проект все еще построен для 32-битной платформы.

Тестовый проект выводит EXE-файл, которыйопирается на файл DLL, который выводит основной проект.

Если я соберу основной проект и тестовый проект для 64-битной платформы, то все в порядке.Если я строю основной проект для 64-битной системы, а затем пытаюсь построить тестовый проект для 32-битной системы, я получаю следующие типы ошибок:

ошибка LNK2001: неразрешенный внешний символ

ошибка LNK2019:неразрешенный внешний символ

Ошибки относятся к функциям, которые объявлены в некоторых из заголовочных файлов основного проекта.

Это потому, что я пытаюсь использовать 64-битный файл DLL в 32-битная сборка?Это поправимо?Я еще раз упоминаю, что если оба проекта построены для 64-битной платформы, то все работает нормально.

Правка: точнее, я скопирую префикс первой строки ошибки, которую я получаю:

ошибка LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: __thiscall ...

1 Ответ

1 голос
/ 05 января 2012

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

...