Poderíamos ter 2 DLLs com o mesmo nome sendo carregado em um processo

Eu estou falando sobre win32 dlls, esses arquivos pe simples. Estou confuso depois de fazer um teste em comparação com o que vi no processo explorer.exe.

Eu escrevi um teste com os seguintes módulos: (C ++)
DLLLoader.exe links para A.dll na mesma pasta.
Ligações B.dll para A.dll (2) em outra pasta. (A.dll (2) é uma DLL totalmente diferente da A.dll, mas com o mesmo nome)
DLLLoader.exe irá carregar B.dll explicitamente através de :: LoadLibrary.
Agora eu começo DllLoader.exe, em primeiro lugar, A.dll será carregado, mas, em seguida, quando ele tenta carregar B.dll, ele só falhou: eu suspeito que é porque B.dll acha A.dll já está carregado no processo, mas na verdade, o carregado não é o único B.dll queria, a tabela de importação / exportação não pode corresponder, então B.dll não conseguiu carregar.
Isso parece nos dizer que não podemos carregar 2 dlls de mesmo nome no mesmo processo, mesmo que eles sejam de caminhos diferentes.

Mas quando eu usei o Process Explorer para monitorar os módulos carregados no processo explorer.exe do Windows, eu pude ver as seguintes 2 dlls sendo carregadas, com o mesmo nome:
comctl32.dll User Experience Controls Biblioteca C: \ WINDOWS \ WinSxS ... \ comctl32.dll
comctl32.dll Biblioteca de controles comuns C: \ WINDOWS \ system32 \ comctl32.dll

Algum de vocês poderia lançar algumas luzes sobre isso?

questionAnswers(2)

yourAnswerToTheQuestion