2

I installed a 32-bit application on Windows 10 64-bit and it installed dll files in the syswow64 folder, but while running, it accesses files from system32 folder instead of the syswow64 folder.

The application is not running properly.

I tried reinstalling and compatibility check but it does not work.

Greg Askew
  • 35,880
  • 5
  • 54
  • 82
softdba
  • 21
  • 2
  • 1
    What software and version? What lead you to the conclusion that this is the problem? Which windows edition & version? Which of the diagnostic steps of related questions have you already attempted, with what results? – anx Aug 18 '23 at 14:02

2 Answers2

2

As @RohitGupta mentions, installing the 32-bit DLLs in SysWow64 is standard procedure, but for your app to be using the ones in System32 is wrong. Normally Windows will make a local directory substitution when it finds that it is running a 32-bit application, but in this case apparently it is failing to do that. The most common reason in my experience for that to happen is if the base application is CPU-agnostic, running as managed code in the .Net environment for instance. Because the application does not have a bit width requirement, it is run with the 64-bit version of the framework for efficiency, and so will try to link with the 64-bit DLLs. You need to contact the manufacturer of the application and confirm whether it is using the .Net framework, or some similar virtualization scheme, and get a version of the application that is set to use the 32-bit DLLs - the .Net framework has a bit flag that can be set in the application header to restrict it to using 32-bit DLLs and COM objects.

Edit: For the .Net framework, the tool that sets the necessary flag bit is called corflags.exe and should be available with any of the Windows .Net developer packages from Microsoft. Syntax is corflags <executablename> /32bit+

tsc_chazz
  • 905
  • 3
  • 14
  • Thank you tsc_chazz for details information .but the manufacturer of the application is not providing his service now. So can you help me to resolve this issue. – softdba Aug 20 '23 at 19:14
  • About all I can suggest is what I had above - fetch the current Visual Studio package from Microsoft (there is a free tier), or try to find just corflags.exe. Then run `corflags /32bit+` to try to set that flag bit. Either it will work, and you'll be set; or it won't, and we'll need more information to find out what will make it work. – tsc_chazz Aug 20 '23 at 21:26
  • Thank you.I will Try and let you know . – softdba Aug 22 '23 at 08:40
  • HI tsc_chazz i Run run corflags /32bit+ and get this error. corflags : error CF008 : The specified file does not have a valid managed header Please Guide me. – softdba Aug 24 '23 at 19:43
  • You haven't given us the name of the program you're having trouble with. I was expecting that you would replace `` with the actual program you're trying to run; did you do that? And if so, please say what the program is you need to run, so we can research what would actually work. – tsc_chazz Aug 24 '23 at 19:59
  • yes i replaced it with my exe name corflags.exe "c:\programfile.........\myexename.exe" /32bit+. and software is not available online bz its developed by some local vendor. but if you say i can send you exe on mail. – softdba Aug 25 '23 at 05:52
  • No promises, but... I've created a temporary email address for myself. Zip up the executable and send it to my username at manna dot bc dot ca and I'll see what I can find out. – tsc_chazz Aug 25 '23 at 06:23
  • Thank you tsc_chazz .I sended. – softdba Aug 25 '23 at 17:35
  • Got it. This program does use a virtual machine, but it is ancient - Visual Basic 6.0. Let me see what I can find. – tsc_chazz Aug 25 '23 at 17:52
  • Yes this program developed in Visual Basic 6.and hope you will give the solution. – softdba Aug 26 '23 at 19:31
  • Seem No body have solution here. – softdba Aug 30 '23 at 20:09
  • Haven't had a chance to work on it yet; needed to create a sacrificial Win10 machine, as I have no assurance this program is safe, and now have to find a VB6 install disk. But I do have to ask: what exactly is the error message you're getting? On my first attempt I got a "non-instantiated class" error because the VB6 VM DLL was not available. – tsc_chazz Aug 30 '23 at 20:12
  • Thanks for your Response tsc_chazz. Actualy after installation of this software most of the functionality are fine but one function in which this exe open a look-up ( active-x dll )which loads some data from database and after selecting a data on that lookup it not return values to exe. If you want i can give you the access of my vm to you. – softdba Aug 31 '23 at 20:00
1

Despite it looking weird, on Windows 64, the 64 bit files are in system32 (for compatibility). And 32 bit files are in syswow64.

Here is an example. Have a look at Processor and Flags properties.

enter image description here

Rohit Gupta
  • 356
  • 2
  • 4
  • 14