Link to home
Start Free TrialLog in
Avatar of tkroll71
tkroll71

asked on

Single Active X for 32and 64-bit IE?

Is it possible to build a single Active X control in VS.NET (C#) that works in both 32/64-bit Internet Explorer via Javascript?

Also curious how to register it manually via the registry.
Avatar of Jarrod
Jarrod
Flag of South Africa image

yes.

Just compile it to "any cpu"
Avatar of illusio
The question - as far as I can read it doesn't concern .NET Assemblies.

It goes for COM visible components - more specifically ActiveX components.
Well - I sincerely doubt that you can make one build that acts as 32bit and 64bit at the same time.
And if so - I'm watching this thread ;-) Maybe there is something possible I'm not aware of.

Generally speaken: ActiveX components are 32bit or 64bit, never both.
Avatar of tkroll71
tkroll71

ASKER

Illusio is correct. I want an Active X component to register via COM.

If I can't make a single component for x86/x64, is it still possible to register each separately via registry keys?
ASKER CERTIFIED SOLUTION
Avatar of illusio
illusio
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks again, Illusio. You def get the points, but I'll throw another question at you while we're on the subject. Is there a way to do this besides .NET languages? I'm migrating the control from VB6. I can't recall if VS6 has any 64-bit options.
Nice question.

It's quite simple. In the age of VB6, there was a faint idea of one day having 64 bit OS's but they didn't exist. VB6 was more in the times where the 16 bit machines migrated towards 32 bit machines. And the 16bit way of addressing (included overlay addressing) was compatible with 32 bit. Using 32 bit they have abandonned the technique of segments and offsets in addressing, rendering the current 32 bit addressing compatible with the 16bit with overlays but making it completely incapable of a compatibility with 64bit.
In numbers:
- 16bit addressing had 16bit memory address + 16 bit segment address = 32 bit
Thus a 16 bit program could see the entire 32 bit address space, it only used a different method to get there.
- 32 bit addressing can only see half of the memory space of a 64 bit addressing field. Making it possible that some variables get placed on spots a 32 bit program can't address.

VB6 does not support 64bit because it's too old and it's end of life, so there will never be any 64 bit options in it. If you want to build new 64bit controls, you'll have to turn to C++ (which will probably shorten your own lifespan greatly) or to .NET (more fun).

Nice question.

It's quite simple. In the age of VB6, there was a faint idea of one day having 64 bit OS's but they didn't exist. VB6 was more in the times where the 16 bit machines migrated towards 32 bit machines. And the 16bit way of addressing (included overlay addressing) was compatible with 32 bit. Using 32 bit they have abandonned the technique of segments and offsets in addressing, rendering the current 32 bit addressing compatible with the 16bit with overlays but making it completely incapable of a compatibility with 64bit.
In numbers:
- 16bit addressing had 16bit memory address + 16 bit segment address = 32 bit
Thus a 16 bit program could see the entire 32 bit address space, it only used a different method to get there.
- 32 bit addressing can only see half of the memory space of a 64 bit addressing field. Making it possible that some variables get placed on spots a 32 bit program can't address.

VB6 does not support 64bit because it's too old and it's end of life, so there will never be any 64 bit options in it. If you want to build new 64bit controls, you'll have to turn to C++ (which will probably shorten your own lifespan greatly) or to .NET (more fun).