15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


dll collision

Hieu Nguyen -- Hieu_Nguyen@cpqm.mail.saic.com
Tuesday, July 23, 1996

                                          8:21 AM             7/23/96

Environment: VC++4.2, NT4.0beta2( build 1314 )
hi,
     I got the message following when run my prog. under debug mode:

LDR: Dll MSVCIRTD.dll base 10200000 relocated due to collision with
C:\WINNT35\System32\MSVCRTD.dll

does any one know what is the cause?  I did not get the message when working
on VC++4.1 or 4.0.  Thanks in advance.




Tim Hagemann -- 100063.323@compuserve.com
Friday, July 26, 1996

[Mini-digest: 3 responses]

Hieu,

Both dll's should be loaded at 10200000 in a process address space. Because only
one dll can be loaded threre, the windows loader has to relocate a dll, which
takes some time - a performance loss, but no "real" error.

Tim Hagemann
ifa informationssysteme fuer Augenaerzte
The original mail was :

From	: "Hieu Nguyen"
Sent	: 1996/07/26 10:25
To	: INTERNET:MFC-L@NETCOM.COM
CC	: 
Subject	: dll collision

Environment: VC++4.2, NT4.0beta2( build 1314 )
hi,
     I got the message following when run my prog. under debug mode:

LDR: Dll MSVCIRTD.dll base 10200000 relocated due to collision with
C:\WINNT35\System32\MSVCRTD.dll

does any one know what is the cause?  I did not get the message when working
on VC++4.1 or 4.0.  Thanks in advance.


-----From: Scot 

You can change this with a linker option - something like 'base'.

We're seeing it lots more here too, I think MSFT changed
the default or something.  We just pick a higher number and
go with it, but someone mentioned to me there's a list of
'reserved' DLL starting addresses somewhere..

HTH,

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=
Scot Wingo
Stingray Software - http://www.stingsoft.com
Sales - sales@stingsoft.com
Support - support@stingsoft.com
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=

-----From: Barry Tannenbaum 

When a DLL is produced for NT, it can be given a "preferred" load address.
When the DLL is loaded, if that address is available, the image is simply
mapped into memory; no address fixup need to be done for string constants,
globals, routines, etc.

If the preferred address is *not* available, the loader has to go through
the DLL and "fixup" references within the DLL for string constants,
routines, etc.
Obviously this takes time to do.  MSVC is warning you that you have a
potential startup performance problem.


        - Barry

--------------------------------------------------------------------------------

3DV Technology, Inc              Phone: (603) 595-2200 X228
410 Amherst St., Suite 150       Fax:   (603) 595-2228
Nashua, NH  03063                Net:   barry@dddv.com






| Вернуться в корень Архива |