On 05/21/2012 01:25 PM, HappyMan wrote:
> есть такая проблема: есть проект A, которая есть статическая либа (которая
> статически слинкована с MFC). Есть проект B (ATL DLL-ка), в которой либу A
> хочется использовать. Так вот при линковке вылезает проблема, что DllMain
> определена дважды.
> 1>uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in
> dllmain.obj
>
> Оно и понятно, т.к. в кишках MFC есть DllMain
> (http://support.microsoft.com/kb/148791)
> Может можно как-то это все-таки слинковать? Напрмер, экспортивровав MFC-шный
> DllMain, и я его вызову в своем DllMain.
У тебя свой DllMain есть ?
Если есть, удаляй, будет работать стандартный.
Если тебе нужен свой -- могу рассказать как и что делать.
> Все проекты настроены на использование одинаковых версий библиотек окружения
> RunTime и MFC (везде статик)
Статики нельзя использовать если у тебя есть .dll.
Есть .dll -- значит уже два модуля, .dll и .exe.
А два модуля должны разделять ОДИН CRT и ОДИН MFC.
Ну, странно, потому как если ты используешь MFC статически, то
там не будет своего стандартного MFC-шного DllMain.
Так как ты делаешь, можно делать только в одно случае, если
пишешь .dll, использующую MFC, в то время как само приложение
и другие .dll не будут использовать MFC вообще -- это достаточно
редкий случай.
Posted via RSDN NNTP Server 2.1 beta