Problems with registering a COM+ dll in 64bit - visual-studio-2012

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.

Related

Pyinstaller missing dll files

I want to create a 32bit executable app from my script to run on Windows 10 with X86 or X64 architectures. I've generated the X64 version of my script and it worked fine. My host machine is X64 but I installed Python X86 version to generate X86 app. Then I generated the executable with Pyinstaller but when I run the executable it throws the following error:
C:\Users\Name\Appdata\local\Temp_MEI51162\VCRUNTIME140.dll is
either not designed to run on Windows or it contains an error...
and in the console I see this error:
Error loading Python DLL
'C:\Users\Name\AppData\Local\Temp_MEI51162\python36.dll'.
LoadLibrary:
I've checked the _MEI51162, both VCRUNTIME140.dll and python36.dll is there but the python36.dll has a size of about 1 MB instead of 3 MB. It doesn't matter if I generate the app as a standalone executable or not and still give me the same error.
It seems that the problem happens when you install both 32bit and 64bit of PyInstaller. And PyInstaller would fail on selecting which version of dependencies are required for the current build. The problem in my situation was VCRUNTIME140.dll. I couldn't find a way to replace the vcruntime140.dll, but I found a workaround by adding the correct file manually to C:\Users\<User>\AppData\Roaming\pyinstaller directory and rebuild with Pyinstaller then It will be replaced with the new one just copied. This will fix the issue temporary and the directory should not be deleted.

How to make self-contained or java-bundled JavaFX application package for ARM

Where could I acquire a working copy of compiled JavaFX app bundled with JRE so I could execute this app on ARM linux?
or
How can I create my JavaFX app + JRE bundle that would work on ARM Linux
Best case scenario for me would be to be ableto create copy-paste enabled folder tree or single executable file..
I do understand that this question might be too vague, but I desperately need some help on this. I have spent more than 6 evenings + 2 nights searching how to get a compiled JavaFX application ( .jar file) to run on ARM linux on UDOO (RPi2-like) board.
I have been more of an .NET guy a long time, and now I had to make WPF-like rich UX app that would run on this specific hardware, and I chose JavaFX due to its likeliness to WPF. It does run fine on my desktop PCs but I absolutely can not get it to run on ARM linux.
I am trying to do this too. Did you get it working? My solution is to package the JAR using tools provided by IntelliJ or any other IDE, include the JRE in a folder within the app, then write a script that invokes the JAR from the included JRE like:
lib/jre/bin/java -jar runthis.jar
I also tried it for two days now but didn't get it to work.
I use maven in combination with the javafx-maven-plugin to build native installers of an application.
At first I got the error, that the javafx-ant.jar tools are missing:
[ERROR] Failed to execute goal build-jar(create-jfxjar) on project foo:
Execution create-jfxjar of goal build-jar failed: Plugin javafx-maven-plugin or
one of its dependencies could not be resolved: Could not find artifact
javafx-packager:javafx-packager:jar:1.8.0 at specified path
/opt/jdk1.8.0/jre/../lib/ant-javafx.jar
Then I found the ant-javafx.jar in a windows JDK but then another error was reported that linux is not supported with this one. Ok so I downloaded a linux JDK and used that ant-javafx.jar. Now it could build and create a *.deb file successfully!
However when I started the installer it failed with a message and when checking the log (/var/log/apt/term.log)
Log started: 2021-04-29 00:40:01
dpkg: Error creating archive
/home/pi/Foo/target/jfx/native/foo.deb (--unpack):
package architecture (amd64) does not match system (armhf)
Then I did research and found the following mailing list entry:
[...] the Java Packager isn’t shipped with any ARM builds that I’m aware of. Currently it is only for X86 Windows, Linux and Mac. [...]
This basically explains it: The packager doesn't work on ARM for now. Maybe we should write the guy to encurage him to add it...
=> So for now I work with the jar directly.

module.js:485 process.dlopen(filename, module.exports);

I am getting this error on a node native addon I created. It works fine on my development machine, but breaks on the test machine.
module.js:485 process.dlopen(filename, module.exports);
Error: The specified module could not be found.
j:\node_modules\mhl-dispatcher\node_modules\node-odp\libs\build\Release\odpnode.node
In the c++ code, I'm using some dlls:
System.dll
System.Data.dll
Oracle.DataAccess.dll
I am using the /clr option.
Any ideas to what the issue might be?
Thanks.
I've figured out the problem, There are two dlls required to run c++ natives on a machine msvcp100d.dll and msvcr100d.dll. The are added by installing the Ms visual c++ 2010 redistributable package. Also for those running 64 bits you would the the 64 bit versions of the dlls or you would get an error.
Error : %1 is not a valid Win32 Application
Hope this helps others.
Cheers
Node either couldn't find the file in any location that it tried, or the Object file does not export a NODE_MODULE symbol.

Error with wxWidgets minimal app

I recently began learning wxWidgets. As all learners do, I first wrote and tested the Minimal App (on my Ubuntu 12.04 LTS). It worked like a charm.
I then decided to test the application on my Windows 7 PC. I built wxWidgets (Debug and Release builds) using Visual C++ 2008 Express following instructions from here. I also built the Minimal App (Build and Release configurations) following the same instructions. The application worked perfectly on my computer. To check whether there were any problems, I sent the executable to a friend of mine. He tested it on his XP PC and it gave him the following error:
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more details.
I have checked that I am using the Multithreaded setting in the build options for both the Debug and Release versions of my application. However, neither of the generated executables works on my friend's machine.
What am I missing out here?
You are missing the C/C++ runtime libraries.
The simplest solution is to build both the wxwidgets libraries and the application with the /MT switch rather than the /MD switch in Project | Properties | C++ | Code generation | runtime libraries

How do I run PartCover in x64 windows

I am trying to run PartCover to test the coverage of some tests with Gallio on windows x64. However trying to run it gives the following error.
Retrieving the COM class factory for component with CLSID
{FB20430E-CDC9-45D7-8453-272268002E08} failed due to the following error: 80040153.
Edit: I am using PartCover 2.2.0
The problem is caused by PartCover trying to load a 32 bit dll when it is running under the 64-bit .NET VM.
The trick is to force PartCover to run in the 32 bit VM. In order to do this you have to use a tool called CorFlags.exe to modify the exe and flag it as 32 bit. This is equivalent to it having been built with x86 as its target.
CorFlags (on my machine) is in Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\
To set the 32-bit flag run:
CorFlags.exe PartCover.exe /32BIT+ /Force
I also found that I had to do the same for the program being run (in my case the Gallio test runner)

Resources