Loading Visual Basic application - vb6

I recently moved one of the old Visual basic application from one computer to another computer (windows 10). When I tried to load the application on the new computer. I get the following errors:
ACTBar.ocx could not be loaded-- Continue loading projects.
I clicked Yes then I got another error saying:
Resize32.ocx could not be loaded-- Continue loading projects.
I said Yes again Then I got another error saying :
TDBG5.OCX and then Crystl32.OCX and then Comctl32.OCX could not be loaded
In order to start rsolving the first .OCX error, I copied this ACTBAR.OCX from my old computer and put it in windows/system32 manually. I tried to register the .OCX regsvr32 command, but got an error saying "The module "ACTBAR.OCX" failed to load. Make sure the binary is stored at the specified path or debug it to check for problems. I tried to unregister then and got the same error. How can I overcome these .ocx issues. This application was written by another developer.
Any help will be greatly appreciated.

I found the solution. In windows 10, I need to put these .ocx files in c:\windows\syswow64 directory and then register them and the error will go away.

Related

VB6 code not running on other machines with "Error in loading DLL" error

I modified my vb6 project to support unicode by using CyberActiveX UniListView100 (UniListView.ocx) controller. I updated my listview with uniListview and project is working well on my machine. But when I try to run it on another machine, it is giving 'Error in Loading DLL' error right after I click on the 'Step into' or 'Start' button.
Once I tried with VB Common Controls Replacement 1.4 Library and the similar scenario happened there as well, code is only running on the machine where it created. But all machines I tried to run this code are equally set-up.
What can be the cause of this error? I even have registered the UniListView.ocx file in the Windows/SysWOW64 folder.
I tried to identified what is happening here with Microsoft Process Monitor, but I was unable to find anything from its logs yet.
Please tell me what can be the cause for this..
Often, the DLL in question is a dependency of the DLL you're trying to load. Find and use the Depends utility to see who requires what. You run Depends, Depends runs your process. First run it on your machine, then on a failing machine. The differences are usually obvious.

The application was unable to start correctly (0xC0000056). Click Ok to close the application

I am developing a C++ app in Visual Studio and get this error when I go to debug - it never makes it to main(). Googling for this error code doesn't help - in fact, most return hits are trojan horse websites.
Dependency Walker doesn't show anything funny. All DLLs are found on the path, and all are 64 bit as expected.
It turns out, one of the Windows DLLs that I am attempting to load has been marked for deletion by an installer that I installed earlier today. I had ran an update to TortoiseGit, which required replacing in-use system DLLs and requested a reboot (which I declined).
The error code 0xC0000056 found a hit here: http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ERREF].pdf
0xC0000056 STATUS_DELETE_PENDING
A non-close operation has been requested of a file object that has a
delete pending
After rebooting, I was able to debug my code.

Run time error Cannot find database dll in vb6

Hi all I have an software running on a machine where it was developed. Now i make a setup.exe and try to install it on other machine.
It was successfully installed without any error. All the function are running properly i.e. adding the records in the database fetching it in the dropdown but the problem occurred when I generate the report.
As soon as I click on to generate the report the error message comes saying that
Run time error'20532'
Cannot find Database DLL.
I have no idea why this is occurring it is running perfectly on the first system but why on the other system it is showing error.
I am using MS Access 97 as a database.
I check the dll's if there is some thing missing but not find anything. all the dlls are present in the system32 folder.
Now what can I do... any one have any idea please help me...
Thanks.
The error is due to the crystal reports.
I just install the crystal report on the target machine and its done.

VB6 - Run Time Error 48

I got this error in some VB6 applications after I had uninstalled another VB6 application and I fixed it by reinstalling the applicaton so that the dll was reinstalled.
However I still do not know which dll was the problem. If I can find out its name I can put it in the install script for the other applications so thay are always OK.
Question - How can I find out the name of the dll that was removed and caused error message 48?
Thank you in advance!
Try watching the process as it loads using Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896653). You will see it probing for each dll.
I assume you don't have access to the source code?
If that is the case, you can use the Regsvr32 tool to manually register and deregister dll's in order to find out which ones are required to run your application:
http://support.microsoft.com/kb/249873/en-us

Getting VB6 ADO application to work in Windows 7

I have inheritted several old VB6 applications that currently cannot be rewritten in .NET. These old applications all use ADO, and compile fine on my XP machine. Since switching to a Windows 7 machine, the applications compile fine, but when they are deployed (on XP machines), I get errors. This is a known issue that this Microsoft article discusses:
http://support.microsoft.com/kb/2517589
The article give a very detailed explanation of a workaround, which involved copying a ".TLB" file and registering it using "regtlibv12". When I attempt to register it, I get this error message:
RegisterTypeLib of C:\Program Files\Common Files\System\ado\msado60_Backcompat.tlb failed : 80029c4a
I have also tried registering this using the old "regtlib.exe" in the Windows folder, but got this error:
LoadTypeLib of C:\Program Files\Common Files\System\ado\msado60_Backcompat.tlb failed : 80029c4a
Because of this, I cannot continue with the work around. I would greatly appreciate any guidance anyone could give me on how to properly register this file.
Thank you in advance!
Put the .TLB file in an appropriate place like
C:\Program Files\Common Files\System\ado
Then open a new Project in the VB6 IDE (elevated, i.e. as admin). Choose Project|References... then click the Browse button. Navigate to the new .TLB file and open it. Check the box to select the item and close the References dialog.
It should be registered now.
If desperate, try VB Type Library Registration Utility.
You probably downloaded the file as C:\temp\Msado60_Backcompat_i386.tlb and didn't rename it. The example is for registering C:\temp\Msado60_Backcompat.tlb (note, no _i386).
Run the command with the correct filename.
Just to update this answer list based upon more recent information, Microsoft released KB 2640696 which addresses this issue in a more straightforward manner. This patch makes it much easier to deploy on your build machines and solves the downlevel OS issue as well.
A more complete picture of the patch can be found on the following blog post.

Resources