Register ActiveX control in 64 bit windows - 64-bit

I have an ActiveX control, I try to register it in windows 7 64 bit and gives me the following error:
"The Module MtnControl.dll faild to load. Make sure the the binary is stored at the specified path or debug it to check problems with the binary or dependent .DLL files"
I am Registering the Control using Command Prompt.
Note: I can register the control on 32 bit windows.
Note: I've tried to put the .DLL file in SysWow64 folder and that didn't work.

In Windows 7 64bits, putting your 32bits ActiveX in C:\Windows\SysWOW64 is a good point. Then register your component with regsvr32 located in C:\Windows\SysWOW64 (32bits version).
Doing that, do you have still an error? In the affirmative, maybe you ActiveX depends on other DLL which could not be found!

Related

Problems with registering a COM+ dll in 64bit

when we build a COM + application in windows7 64 bit with "AnyCPU" or "X64" bit configuration we are not able register that dll by using below options
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe" "...\ABC.dll"
The following installation error occurred:
1: Failed to load assembly 'ABC.dll'.
2: Could not load file or assembly 'file:///ABC.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Note:: i have checked properly all its dependency are built properly in 64 bit with 64 bit configuration.
Note:: i am using "VS2012 x64 Cross Tools Command Prompt" in Adminstrator mode to register
This work fine if we build in windows 7 32bit.
any suggestions?
Have you tried using this:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe" "...\ABC.dll"
instead of this:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe" "...\ABC.dll"
The difference is in the framework folder inside C:\Windows\Microsoft.NET\, Framework64 instead of Framework.

InstallShield installs to SysWOW64 and not in System32

I'm creating a InstallShield 2012 Spring project, and I need to copy some jpg into System32 subfolder.
In Application Data/Files and Folders, I put that into [WindowsFolder]/System32/akrmf and when install, it copies to SysWOW64/akrmf on Windows 7
The installation project doesn't include any exe or dll, only text files and images.
I tried using [SystemFolder] and copies into SysWOW64 too.
Is there any way to force installation into System32/akrmf folder ?
Thanks
To target the true (64-bit) system folder with Windows Installer, your MSI needs to be a 64-bit package (see Targeting 64-bit Operating Systems). Unfortunately this prevents it from installing on 32-bit systems.
To do this with InstallScript, there are related approaches that do not require creating two separate packages, but you may find it easiest to create two different components where only one is selected for installation.

CAPICOM dll not working in x64 bit server

I am using CAPICOM dll in my project for certificate generation. On my local machine that is 32 bit sysatem it is working fine but on server where I host my application that is 64 bit server machine it gives 0x80090020 error.
As my local machine I register CAPICOM.dll with regsvr32 CAPICOM.dll command in system32 folder and also register the CAPICOM.dll with regsvr32 CAPICOM.dll command in system32 and syswow64 both folders. Message appears that dll registered successfully.
When I run my application then it will gives the 0x80090020 error. this error means is "Internal Server Error".
I don't want to use the other alternatives of CAPICOM.dll.
You need a 64-bit version of "CAPICOM.dll" placed in system32 folder on 64-bit machine. I'm not sure about regsvr32 command for them. It can be different for 64-bit libraries.

How to launch 64 bit version of javaw.exe from CreateProcess (C++)

I am writing a launcher in C++ to launch my java based GUI application on Windows. I am using CreateProcess to launch "javaw.exe". Everything works except for the fact that 32-bit version of "javaw.exe" is always launched.
When java is installed, it puts the executables "java.exe" and "javaw.exe" in %windir%\System32 on 32-bit windows. On 64-bit windows, it puts the same executables in %windir%\SysWow64.
There are 3 possibilities:
32-bit launcher executed on 32-bit windows: %windir%\System32 is in search path, and 32-bit javaw.exe is found. The GUI launches. Everything works.
32-bit launcher executed on 64-bit windows: %windir%\System32 is in search path. %windir%\System32 is redirected to %windir%\SysWow64 (since my launcher is 32 bit in this case). 32-bit javaw.exe is found. The GUI launches. Everything works.
64-bit launcher executed on 64-bit windows: %windir%\System32 is in search path. No redirection happens. It does not contain the executable javaw.exe. The launcher fails.
How do I launch 64-bit javaw.exe in the third case?
I finally found a solution (by digging through various posts on stackoverflow).
Recent versions of JRE when installed do put a copy of "javaw.exe" in System32. The previous versions of 64 bit JRE probably didn't (not sure).
In any case, the registry key HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment has a property CurrentVersion which points to the key for the default JRE for the system. The sub-key corresponding to the version number has a property JavaHome which points to the location of JRE installation.
If JRE/JDK is not installed, then the Java Runtime Environment key won't be found.

How do I uninstall Java ME SDK from Windows 7 x64?

I try to uninstall Java ME SDK from Windows 7 x64, but it doesn't work for me.
If I choose Uninstall I get a progress bar, then it goes away, but the Software is still there.
On the first few times I did this, I got the same error message as in I need help UNINSTALLING Java ME SDK:
... show message dialog
title: Critical Error
message: Cannot load native library from path: native/jmesdk/windows/windows-x86.dll
Exception:
java.lang.UnsatisfiedLinkError:
C:\Users\Jonas\AppData\Local\Temp\nbi-8367277139934329064.tmp: Can't load IA 32-bit .dll on a AMD 64-bit platform
In ref to getting the uninstaller to use the 32-bit JRE, the config I attempted that failed to work:
a) Set the PATH environmental variable to point to the 32-bit JRE
b) Windows registry edits in HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6 to point to the 32-bit JRE.
In a last ditch effort I renamed \Program Files\Java to Java2, and the uninstaller must have searched to find \Program Files (x86)\Java, the 32-bit JRE, and the uninstall worked.
Seriously, Sun/Oracle. Test your products.
I had the exact same problem and I figured it out. :)
It's because you have the 64-bit JRE installed. Either uninstall it or somehow redirect the J2ME uninstaller to use the 32-bit JRE on your system, so that the 32-bit uninstaller can run instead of the 64-bit uninstaller.
I had the same problem and figured the solution out. As mentioned above you need to make sure J2ME unnistaller only recognizes Java x86. The simplest way I found, instead of unnistalling Java x64, you only have to temporarily rename your Java x64 installation folder to anything you want. That is, rename the folder C:\Program Files\Java to, e.g, C:\Program Files\JavaTEMP.
Now run unnistaller. When finished rename the folder back it's previous name.
That's all.
Hope I helped.
Just perform the following steps and you will be done:
1) Click on the link below and click on any of the ...i586.exe link according to your system
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
2)Install the software without changing default settings.
3)Run cmd command and type the following:
C:\Java_ME_platform_SDK_3.0\uninstall.exe --javahome "C:\Program Files (x86)\Java\jre8"
4)[optional] uninstall java 8 from control panel which you downloaded to uninstall the above software.
Congratulations.. You just did it!!
Thank you for reading.. Any suggestions or aprreciation is welcomed..
Turns out I had exactly the same problem, uninstall java (TM) 7 64bit and locate the 32-bit java installer bone this download uninstall it and try to install the Sun Java Wireless Toolkit and uninstalled correctly.
Just run this command:
C:\Java_ME_platform_SDK_3.0\uninstall.exe --javahome "32-bit jre location"
Rather than temporarily moving the x64 JRE out of the way, just tell the J2ME SDK uninstaller to use the 32bit JRE:
C:\Java_ME_platform_SDK_3.0\uninstall.exe --javahome "C:\Program Files (x86)\Java\jre7"
Note that this provides the path to a JRE within the "Program Files (x86)" directory, which is the 32bit variant. I only had a Java 7 JRE, but this ought to work with a Java 6 JRE, also.

Resources