2

The big problem

In the organization where I work, the management system (a modular application created by another company) was developed in the year 97/98 on VB, and has never migrated to another more evolved development platform, such as VB.NET. This application (of 32 bits) worked correctly on Windows 7, both 32 and 64 bits.

Now, and for obvious reasons of security, we have to install this system on Windows 10, and here are several problems:

  1. Without compatibility with windows 7, the main application launches sub-applications with other buttons, as if they were modules. It happens that several of these sub-applications throw Runtime Error '53': file not found without specifying which dll is missing. Other sub-applications do not open. Of course we have already checked that the libraries are registered with regsvr32.
  2. With compatibility with windows 7, runtime error '53' seems to go away but then the program issues a warning (say, a predicted warning given that it appears in non-English language), noting that it was not possible to copy some files that must be processed to the special folder UserProfile, adding as a detail 'Runtime Error '52':Bad file name or number'.

What have I tried?

  • I tried running the application on Windows 10 of 32 and 64 bits. In both versions the program failed and it even seems to work worse in the 32-bit version.

  • I also tried to disassemble the code, managing to obtain that the error comes from solving some route related to the special folders (at least ProgramFiles and UserProfile).

  • I researched on my own and I suspect that it may be due to some shell and architecture problem, as shown in this thread, Since the application uses the shell to resolve the special folders. However, it resolve the paths of these folders correctly.

  • I have a high suspicion that it is related to running the application in a higher mode, which I tried to run in administrator mode and take the permissions of the special folders. But I think that I'm missing some configuration.

  • I am seriously considering virtualizing windows 7 within windows 10 until the program is updated, as suggested here, but I want to use it as a last bullet.

Honestly, I'm stuck. Any ideas?

PD: Please avoid obvious answers to the style "your organization should pay for better software"; I'm in the IT department, and we have not yet managed to unbind the databases of this ugly management software; not to mention what it is costing us to convince our superiors of the change.

  • 2
    Lots of other people are stuck with VB6 too, you're not in it alone! :) – StayOnTarget Jul 2 '19 at 11:17
  • 1
    In my experience there have not been any specific Windows 10 issues that inherently caused problems different from Windows 7. Obviously applications can vary so that may not be universally true; but I would look for installation or configuration type issues at first, rather than outright compatibility. The 52/53 errors could be - permissions? Drive mappings? I would recommend running your application against Process Monitor and see if you can detect what it missing / not found with that tool. – StayOnTarget Jul 2 '19 at 11:20
  • 1
    There are a lot of changes between Windows 7 and Windows 10 that would explain these problems. Now none of them were necessarily on purpose. For instance, on you could store files as an application on Windows 7 within Program Files without any major issues but on Windows 10 that requires the user to run the application as an Administrator. These problems are even farther apart once you try to compare a program written in VB6 two decades ago on a 16-bit OS like Windows 98. If this program interfaced with the Shell, it won't be possible, to hack it together on Windows 10. – Ramhound Jul 2 '19 at 11:51
  • @DaveInCaz Thank you! We downloaded the powerful [Process Monitor][1] tool from the [Windows Sysinternals][2] package and we solve the problem. we discovered in less than 5 minutes that not only were there missing dlls in the system but we also discovered that there was a missing .ini configuration file where a network resource related to the database had to be specified; including username and password. Add your comment as an answer then I will mark it as correct! [1]: docs.microsoft.com/en-us/sysinternals/downloads/procmon [2]: docs.microsoft.com/en-us/sysinternals – Noir Jul 2 '19 at 21:25
  • 1
    @Noir its a great tool, I'm glad it was helpful. – StayOnTarget Jul 2 '19 at 22:05
4

In my experience there have not been any specific Windows 10 issues that inherently caused problems different from Windows 7. Obviously applications can vary so that may not be universally true; but I would look for installation or configuration type issues at first, rather than outright compatibility.

The 52/53 errors could be - permissions? Drive mappings? I would recommend running your application against Process Monitor and see if you can detect what it missing / not found with that tool.

  • Yay! With Power Monitor we discovered in less than 5 minutes that not only were there missing dlls in the system but we also discovered that there was a missing .ini configuration file where a network resource related to the database had to be specified; including username and password. And no, the company that owns the product did not include this configuration in its manuals. At this point it does not surprise me that they have not done it. – Noir Jul 2 '19 at 22:48
0

-Run it as administrator.

-Install it on a folder created by you.

-Take ownership of all his subfolders.

Many VB6 applications don't even have permission to access their own folders on windows 10.

Try MS Application Compatibility Toolkit

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.