Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Debug- и Release-версии DLL в VC++ 2008


Автор: erslgoeirjh 10.2.2015, 17:07
Есть DLL с именем DLLIntegr.dll и есть клиентская программа CallDLLIntegr, которая использует эту DLL. (Причём в клиентской программе у меня предусмотрены варианты и явного, и неявного вызова этой DLL).
При компиляции DLLIntegr.dll в режиме Debug и при компиляции клиентской программы CallDLLIntegr в режиме Debug всё нормально работает.
При компиляции DLLIntegr.dll в режиме Release и при компиляции клиентской программы CallDLLIntegr в режиме Release также всё нормально работает.
(И DLL, и клиентская программа у меня разработаны в VC++ 2008 как консольные приложения).

Но я бы хотел правильно переименовать файлы DLLIntegr.dll и DLLIntegr.lib в Debug-версии соответственно как DLLIntegrdbg.dll и DLLIntegrdbg.lib, а файлы DLLIntegr.dll и DLLIntegr.lib в Release-версии -- соответственно как DLLIntegrrel.dll и DLLIntegrrel.lib , чтобы потом моя клиентская программа сама определяла, какое имя .dll-файла и .lib-файла ей следует использовать (чтобы компилятор или отладчик не ругался по поводу того, что нет файла DLLIntegr.dll или DLLIntegr.lib).

Что мне для этого надо сделать при компиляции моей DLL в Debug-версии и Release-версии и что мне нужно сделать при компиляции моей клиентской программы CallDLLIntegr в Debug-версии и Release-версии?

Автор: borisbn 11.2.2015, 15:37
В свойствах проекта DLL для конфигурации Debug делаешь так
user posted image

В свойствах проекта EXE для конфигурации Debug делаешь так
user posted image

В свойствах проекта EXE для конфигурации Release делаешь также, но без _d

Для динамической загрузки DLL из кода делаешь так
Код
const char * const YOUR_DLL_NAME = "your_dll_name"
#if ! defined( NDEBUG )
    "_d"
#endif
".dll";

LoadLibrary( YOUR_DLL_NAME );
и т.д.


Я так делаю и всё отлично работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)