| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > MFC DLL не грузится в релизе |
| Автор: Competitor 27.2.2009, 15:49 | ||
| Привет всем, есть в солюшене проект MFC DLL (с опцией Use MFC in a Shared DLL). Линкую статически эту длл в свой основной проект. В дебаг версии всё работает нормально, а вот в релизе ДЛЛ не грузится автоматически, ни InitInstance, ни сам конструктор вообще не вызываются. Т.е. я прописал в Additional dependenices свою дллку и в InitInstance этой дллки у меня должны выполняться определенные действия, так вот в релизе туда управление просто не передается. Пока сделал так:
т.е. в релизе линкую длл динамически, в этом случае InitInstance этой длл вызывается, всё работает как полагается. Но хотелось бы узнать, из-за чего в релизе длл сама не линкуется, если к ней не обращаться |
| Автор: Earnest 27.2.2009, 17:59 |
| Депенденсов мало, чтобы библиотека автоматически грузилаь. Нужно, чтобы линкер ее действительно требовал - т.е. были к ней какие-то обращения из кода приложения или других загружаемых DLL. Почему она у тебя в дебаге грузится - непонятно, модет, есть какие-то вызовы, которые только в DEBUG? А вообще, если DLL нужна только как доп. модуль, а не для разрешения ссылок, то самое то загружать ее через LoadLibrary. Можно, конечно, какой-то "левый" вызов сделать, типа InitMyLibrary, вызываемый из exe, но зачем? |
| Автор: aram90 27.2.2009, 20:57 |
| Думаю в релизе не грузится, потому что если нет обращений в библиотеку, то релиз не включает его вообще, даже в том случае, если они есть в коде, но никогда не будут выполнены. |