К статически для связывания вашей программы вам не нужен материал __declspec (), и вам не нужен отдельный проект для создания файла LIB.Я думаю, что вы можете просто создать ссылку, используя файл .obj из вашего проекта A.
Ваш проект A имеет файл заголовка и, предположительно, файл .cpp, который содержит реализацию элементов, описанных в этом заголовке.Допустим, ваш заголовочный файл foo.h
и связанная с ним реализация foo.cpp
.После компиляции в промежуточной папке <solutiondir>\A\Debug
или <solutiondir>\A\release
должен быть промежуточный файл foo.obj
.Этот файл может использоваться компоновщиком.
В свойствах проекта T найдите Linker |Введите и измените свойство «Дополнительные зависимости», включив в него файл foo.obj
.Один из подходов заключается в использовании относительного пути к файлу для поиска файла - например, ..\A\Debug\foo.obj
в вашей конфигурации отладки.Другой подход заключается в использовании простого имени файла в «Дополнительные зависимости» - foo.obj
- и затем использовать Linker |Генерал |Дополнительные каталоги библиотек ", чтобы помочь компоновщику найти файл - например, ..\A\$(IntDir)
. Использование макроса $(IntDir)
имеет то преимущество, что то же значение работает для параметров отладки и выпуска.
Не забудьте настроить сборкузависимость от вашего T-проекта до вашего A-проекта, чтобы убедиться, что сначала проект A скомпилирован. В противном случае файл foo.obj
может не существовать, когда его ищет компоновщик T. В свойствах Solution выберите Project Dependencies, а затем установите ProjectT зависит от проекта A.
На динамически ссылка, вам нужно использовать файл A.LIB
, как сказал @ajay. __declspec(DllImport)
сообщает компилятору, какие функции и данные вы импортируете, ноне сообщает, откуда вы импортируете эти вещи.
Использование файла A.LIB
в качестве входных данных для компоновщика во многом аналогично использованию файла foo.obj
в случае статической компоновки, за исключением того, что libфайл попадает в выходной каталог решения <solutiondir>\Debug
вместо промежуточного каталога проекта <solutiondir>\A\Debug
.
This wАлгоритм при создании и использовании DLL может быть полезным фоном.