Настройте проект Visual C ++ 2010 для использования DLL - PullRequest
1 голос
/ 22 декабря 2010

Я узнал, как сделать DLL, было легко проводить ее модульные тесты, потому что в конфигурации проекта оказалось, что мой проект DLL, поскольку он был в том же файле решения.

Теперь яя запускаю другой проект, но я хочу использовать либо мою DLL с ним, либо другую DLL, где я могу указать Visual для использования этой или этой DLL?

Я настроил Visual для использования правильных заголовков, но как я могузаставить его найти файл DLL?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

Вы можете сделать это автоматически в Visual Studio, чтобы пользователь вашей DLL не мог этого забыть. Типичный заголовочный файл DLL может выглядеть так:

#undef MYEXPORTS
#ifdef BUILDING_MYDLL
#  define MYEXPORTS __declspec(dllexport)
#else
#  define MYEXPORTS __declspec(dllimport)
#  pragma comment(lib, "mydll.lib")
#endif

MYEXPORTS void SomeFunction();
// etc..

Директива #pragma внедряет опцию компоновщика в файл .obj, который гарантирует, что компоновщик всегда ищет .lib, когда клиентская программа #include заголовочный файл. Это тот же механизм, с помощью которого он всегда ищет правильную версию CRT-файла .lib, даже если вы никогда не упоминаете об этом в настройке «Дополнительные зависимости». В остальном это нестандартно, но использование DLL в любом случае нестандартно.

2 голосов
/ 22 декабря 2010

Вам необходимо добавить файл .LIB в ваш проект. Он должен был быть сгенерирован при компиляции DLL и находиться в том же каталоге, что и скомпилированная DLL.

В VS2008 вы должны открыть Свойства проекта и перейти к Linker, Input, Additional Dependencies и указать там файл LIB. Это должно быть очень похоже на VS2010.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...