c++mfccomactivexocx

Can not load 64-bit ActiveX Control


I build a 64-bit ActiveX Control, and I have registered it successfully. Then I build a MFC project and I want to insert the ActiveX Control into it.

When I open the "Insert ActiveX Control" dialog, I cannot find my ActiveX Control.

If I change the 64-bit Control to 32-bit, the problem is fixed. Why? Does MFC not support 64-bit ActiveX Controls?

image

The strange thing is that i can load the 64 bits control by ActiveX Control Test Container tool -- "testcon.exe" which is supported by QT5. ActiveX Control Test Container supported by QT5

Control UUID in regedit

Control UUID


Solution

  • This is not because MFC does not support 64bit, but because the Visual Studio IDE and its supporting GUI tools work only at 32bit.
    Does Visual Studio 2019 support 64 bit custom visualizer?
    Q:

    I have a special type to display but the type require a 64bit dll thus I have to compile the custom visualizer in x64. However I got bad image error when viewing the variable. Does visual studio 2019 support for visualizer compile in 64 bit mode? Or because VS is 32 bit program thus the visualizer also require to be 32 bit?

    A:

    The Visual Studio IDE is 32bit (and because of the many existing extensions and the long history of the Visual Studio IDE this is not going to chance easily).

    So any extensions, including custom visualisers, need to be 32bit.

    If you cannot get a 32bit build of your dll, then you would need to have some kind of container process and then communicate with that (this is unlikely to be easy, because none of the internal APIs would be accessible to the helper process).

    Visual Studio 64 bit? [closed]
    Q:

    Is there any 64 bit Visual Studio at all? Why not?

    Typical short A:

    No, but the 32-bit version runs just fine on 64-bit Windows.


    You should make ActiveX Control for 32bit/64bit respectively, import 32bit ActiveX to create 32bit application, and add the setting to compile the application in 64bit.