Overview of Executability Check for MIPS & ARM based Handheld PCsCESD-S-0128
This article discusses the purpose and use of ExecutabilityCheck on MIPS & ARM based Handheld PCs.
ExecutabilityCheck is a software checking utility modified for HPC use by Hou Ming.
ExecutabilityCheck is a program that is run on the handheld with the sole purpose of diagnosing why an installed program will not run. Most often this is due to three distinct reasons.
The following steps outline the installation and basic usage of Executability Check.
First, copy the ExecutabilityCheck program to a folder on your device. It can be anywhere. The program itself requires one additional .dll that may or may not be present on your device. That is the coredll.dll. The author's download contains a file titled coredl3.dll. If the coredll.dll in your Windows folder is incompatible with ExecutabilityCheck, then you can use the coredl3.dll file by renaming it to coredll.dll and placing it in the same folder where you have saved ExecutabilityCheck. This should be a folder other than the Windows folder as you do not want to overwrite your existing coredll.dll. If your existing coredll.dll is compatible with ExecutabilityCheck, then you may choose to save it in the Windows folder. It is a known fact that the coredll.dll that comes with the Sigmarion III is incompatible with ExecutabilityCheck. And there may be other devices with the same problem.
Running the Program
When you run the program, a window will open that prompts you to select the file you wish to check. The program prompts you for the type of file as an .exe, .dll, or .cpl type file.
Now navigate to where the installed program is that will not run. In this case, I am going to open the file titled “Example file.exe”.
ExecutabilityCheck now checks the “example file.exe” and reports the problems. In this case you can see that the problem lies in that the program was written for a different type of CPU than what my handheld is.
Assuming that I know how to correct this problem, and I did by hex editing the “example file.exe” to show the proper CPU, I can now run ExecutabilityCheck again, this time on the edited file with the same name.
This time the error is that the program was written for CE 5.0, and my device is only CE 4.2. Luckily, this is an easy fix, one that ExecutabilityCheck can take care of. I will just change the OS in the window that opens, that is I will change the 5.0 to 4.2. And when I click on the “Overwrite” button, the software will be permanently and forever changed.
Finally, the last common problem is the alert you see above. The solution is to find the missing .dlls and copy them to the same location where the .exe program resides. Finding the correct .dll can sometimes be a trial and error procedure.
Most of the time, you will discover that there are multiple causes for a program not running. This is shown in the next screen.
In the example above, lots of things need to be corrected. You will have to resolve each issue, one at a time before you can hope that the program will run.
Once all issues are resolved, running ExecutabilityCheck on a file will result in a blank screen like this:
Hopefully, if things went correctly, at this point you can now run the software that wasn't specifically designed for your device. If you were successful, then maybe you will see a screen like this (Pocket PC program called File Navigator running on HPC):
ExecutabilityCheck is an invaluable tool to help resolve software compatibility issues. The unfortunate truth is that even with no errors presenting in ExecutabilityCheck, there is no guarantee the software will function properly. You will have to test it to see.
Question: Where is the original author's site?
Answer: It can be found here:
Question: Are there any planned updates, or a version for SH3/SH4 processors?
Answer: No & no
Question: How do I change the CPU type?
Answer: This normally requires hex editing the .exe file of the program you wish to change and is another topic entirely
Question: I added the missing .dlls, but the program still will not run, why?
Answer: The .dll you added needs to be compatible with your hardware and your operating system. If one doesn't work, try finding another. Sometimes, nothing works.
Question: I fixed everything using ExecutabilityCheck, that is there are no more errors, but the program still won't run, why?
Answer: It has too many other discrepancies from your hardware and operating system, sometimes it just happens. Sometimes a program calls for things your HPC cannot provide, such as a certain screen size, or direct screen writing, or memory issues. Some programs have other differences that ExecutabilityCheck does not recognize.
Question: What are .exe, .dll, and .cpl files?
Answer: .exe are executable program files, programs that run. .dll files are dynamic link libraries, commonly called drivers. They help interface the software and hardware on your machine. .cpl files are specialized .dll files that reside in the control panel of your device.
Question: What does the “Rewrite Lib name” button do?
Answer: The "Rewrite Lib Name" allows you to edit the filename of the .dll; e.g., rename coredll.dll to coredl2.exe. This is useful if you have another version of the same .dll in the same folder location (which of course would have to be renamed so that it doesn't overwrite the original one). Editing the name of the required .dll in ExecutabilityCheck makes the program look for the renamed .dll instead of the original one.
Question: I notice that HPC:Factor has two versions of ExecutabilityCheck for download, which do I use?
Answer: Use the smaller one specifically formatted for the HPC HVGA screen. The other is a larger program with special formatting for pocket PCs, but may have some use with larger SVGA HPC devices.
Question: Is there any other similar program to use?
Answer: Dependency Walker is a similar program that will tell you the required dependencies, but it is run on a desktop and is far more comprehensive. More information can be found on it here: http://www.dependencywalker.com/