question

VishnuGopalakrishnan-8317 avatar image
0 Votes"
VishnuGopalakrishnan-8317 asked XiaopoYang-MSFT answered

Can an application and a dll use different ComCtrl32.dll?

The application require ComCtrl32.dll 5.8 and where as one of its loaded require ComCtrl32.dll 6.0. How it possible?
Tried with specifying the versions in manifest of both application and dll project. But the dlls still using the 5.8 at some point( application manifest ).

windows-apic++
· 4
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

If you make the EXE use V6, is there a problem?

0 Votes 0 ·

Yes.
The situation is there exe and multiple dlls.
Exe and other dll require version 5 and one dll require 6.

0 Votes 0 ·

Hope a dll manifest and Preprocessor Definition of ISOLATION_AWARE_ENABLED in dll project is enough.
It does not works.
At some point the ComCtrl32 version changed - i.e after a CDialog DoModal call.

One more doubt.
What is the relation between /ALLOWISOLATION linker option and ISOLATION_AWARE_ENABLED Preprocessor.

0 Votes 0 ·
OlafHelper-2800 avatar image
0 Votes"
OlafHelper-2800 answered

ComCtrl32.dll is an ActiveX control and on one machine only one version can be installed/registered; that's why it's called DLL-Hell: https://en.wikipedia.org/wiki/DLL_Hell

5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

XiaopoYang-MSFT avatar image
0 Votes"
XiaopoYang-MSFT answered

According to MSDN Isolating Components and the SO thread, with ISOLATION_AWARE_ENABLED used, you need to save contexts which need to be isolated. Then you active the context before you call on each entry functions and deactivate the context after functions returned.


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.