Error trying to run Autopatcher
#1
Posted 19 August 2008 - 06:14 PM
What AutoPatcher was trying to do
It appears that the error occured while AutoPatcher was trying to initialize the form's screens.
Where: frmMain.Form_Load()
Error Code: 0xB: Division by zero
I then discovered that Autopatcher is up and running again, so I uninstalled the old version and downloaded APUP.EXE, downloaded everything then tried again. Upon running Autopatcher I received exactly the same error message. I see that this error message has been mentioned before but I cannot find a solution mentioned. Does anybody have any ideas?
Thanks
Paul B
#2
Posted 19 August 2008 - 09:07 PM
Glad to see you've rediscovered AutoPatcher.
Your problem is almost certainly a component registration error caused by the May 2007 version of AutoPatcher.
These instructions assume you are running a standard Windows 2000 installation:
[indent]1) Check that the files FM20.DLL and FM20ENU.DLL are in your C:\WINNT\SYSTEM32 folder and are dated 07-Oct-2007
2) If they are present, but have a different date, rename them to FM20.DLL.old and FM20ENU.DLL.old
3) If they are missing, copy the missing files from APUP's bin folder to C:\WINNT\SYSTEM32
4) In the run box (Start > Run) -- or at a Command Prompt -- type REGSVR32 FM20.DLL[/indent]
Make sure you are using the current (not May 2007 version) of autopatcher.exe and try again.
If it still fails you may need to re-register other components/OLE controls. Please report success or failure back here.
--
Edit: Corrected step 3.
Edited by James, 19 August 2008 - 09:17 PM.
#3
Posted 19 August 2008 - 10:19 PM
James, on Aug 19 2008, 09:07 PM, said:
Glad to see you've rediscovered AutoPatcher.
Your problem is almost certainly a component registration error caused by the May 2007 version of AutoPatcher.
These instructions assume you are running a standard Windows 2000 installation:
[indent]1) Check that the files FM20.DLL and FM20ENU.DLL are in your C:\WINNT\SYSTEM32 folder and are dated 07-Oct-2007
2) If they are present, but have a different date, rename them to FM20.DLL.old and FM20ENU.DLL.old
3) If they are missing, copy the missing files from APUP's bin folder to C:\WINNT\SYSTEM32
4) In the run box (Start > Run) -- or at a Command Prompt -- type REGSVR32 FM20.DLL[/indent]
Make sure you are using the current (not May 2007 version) of autopatcher.exe and try again.
If it still fails you may need to re-register other components/OLE controls. Please report success or failure back here.
--
Edit: Corrected step 3.
#4
Posted 19 August 2008 - 10:43 PM
I didn't send a copy of the log before that came with the original error message. It reads.
Attempting to initialize common controls.
Accessing filesystem...
AutoPatcher 5.6 loaded the filesystem.
Detected English (1033) Windows 2000 Professional Service Pack 4
System Components:
Internet Explorer: 6.0.2800.1593
Windows Media Player:
.NET Framework: 1.1.4322|1.1SP1|2.0.50727.42|2.0SP0
Windows Installer: 3.1.4000.1823
DirectX: 4.09.00.0904
MSN/Live Messenger:
Office Components:
Microsoft Word: 8.0.0.3514
Microsoft Excel:
Microsoft PowerPoint:
Microsoft Outlook:
Microsoft Access:
Microsoft Project:
Microsoft Publisher:
Microsoft OneNote:
Microsoft FrontPage:
Microsoft InfoPath:
Microsoft Visio:
Microsoft SharePoint Designer:
Microsoft Groove:
Best wishes
Paul B
#5
Posted 20 August 2008 - 07:01 AM
<sigh> This process would be SO much easier if I could do it by remote access. Never mind -- let's try again.
First some comments on what you've done so far:
PaulB, on Aug 19 2008, 10:43 PM, said:
PaulB, on Aug 19 2008, 10:43 PM, said:
PaulB, on Aug 19 2008, 10:43 PM, said:
If AutoPatcher still fails after this step, it becomes quite difficult. The trouble with registering and re-registering controls is that some of them make extensive alterations to the Registry. In some cases hundreds of registry entries are changed.
The next step would be to undo everything that has happened right back to (and including) the Autopatcher_Win2k_May07_ENU_Core install. In Windows XP, that would mean going back to a Restore Point -- but Windows 2000 doesn't have this facility.
To try and undo the Registry manually means running REGSVR32 with the /U option (/U = UNinstall). This would have to be done in reverse order: first doing this for all the current registered files, then (2) moving them out of the SYSTEM32 folder, (3) renaming the .old files back to their original names, (4) UNregistering these as well (5) moving these out of SYSTEM32 as well, finally (6) running the latest autopatcher.exe again, so that it can install itself and register its components automatically.
If you need some backgroung information on REGSVR32.EXE, then Microsoft have a relevant KB article: KB249873 Explanation of Regsvr32 usage and error messages
It goes without saying, that you must do all of these steps from an acount with Administrator privileges, otherwise the registry alterations (behind the scenes) may fail.
If autopatcher works at this point, you can tidy up by deleting all the files moved out of SYSTEM32.
--
Edit: corrected minor typos
Edited by James, 20 August 2008 - 07:04 AM.
#6
Posted 20 August 2008 - 02:22 PM
COMCTL32.OCX
COMDLG32.0CX
FM20.DLL
MSCOMCTL.OCX
RICHTX32.OCX
SSUBTMR6.OCX
These two would not unregister:
AAMD532.DLL
FM20ENU.DLL
The procedure I carried out was to unregister all the new versions of the files, where they would unregister, then delete all eight from \winnt\system32. I then copied back the versions I had found there when the problem first arose, unregistered the six that would unregister and then deleted all eight again. After than I unzipped APUP.EXE and APUP_BIN to d:\autopatcher, ran apup.exe and downloaded the new version of autopacher.exe (but no windows 2000 files) then ran autopatcher.exe. At this point I got an error message telling me that COMCTL32.OCX or one of its components was not registered correctly. I ran autopatcher.exe again and I was back to the original error message.
Are there any other dependences that I can unregister and reregister? Also do I need to run vbrun60sp6.exe? Would it help to try and find a version of autopatecher before May 2007 and try to run that?
The May07 version of Autopatcher did work since I used it earlier this year to build this system. However a lot of software was added after Autopatcher and this is the first time I have tried to use it again. Regarding restore points, I do have my own restore point for Windows 2000 but it only goes back a couple of weeks.
Curiously, I have also just installed W2000 on a new laptop, replacing XP which it arrived with. This has much the same configuration as the desktop machine which is causing the current problem but Autopatcher still works there. I don't know if there is any way of comparing one system to the other in order to try and pinpoint the problem. Both were created with the May07 autopatcher. (Now I know that Autopatcher is available again I should update the laptop, but I will wait until the current problem is resolved.)
Thanks
Paul B
l
#7
Posted 20 August 2008 - 02:50 PM
Paul B
#8
Posted 20 August 2008 - 07:58 PM
PaulB, on Aug 20 2008, 03:22 PM, said:
Well that changes everything. It would be a very good idea to run vbrun60sp6.exe in that case.
--
#9
Posted 20 August 2008 - 10:15 PM
Paul B
#10
Posted 21 August 2008 - 08:51 AM
Automatic Updates
BAckground intelligent transfer service
Indexing Service
Messenger
Remote Registry Service
Routing and Remote Access
Windows Time
Is it likely that these would affect autopatcher?
Paul B
#11
Posted 21 August 2008 - 10:36 AM
PaulB, on Aug 21 2008, 08:51 AM, said:
It's time to stop the registering unregistering process and leave that part alone:
1) Copy the four .OCX and four .DLL files from AutoPatcher's BIN folder to SYSTEM32
2) Register (with REGSVR32) the four .OCX files and also FM20.DLL and SSubTmr6.dll (total: 6 files to register)
Don't worry about the dates of the files, it's the versions that are important. A lot of the files have their dates set manually to a date chosen by the programmer. Later date does not imply later version.
3) vbrun60sp6.exe you have already run. That sorts out the VB runtime library and a further few OLE controls.
What I'm trying to do here (and in previous posts) is get most of the known dependencies into a known state. Now, looking further, it becomes next to impossible for me to guide you in the next steps over a forum, because from here I can't see the big picture, not do I know what software is installed, in what order and so on.
If this were happening to me I would now be looking at the interactions with other installs and I would probably start using Dependency Walker -- with profiling as none of the controls show up in the static dependency tree.
I don't think disabling the 7 services you have listed is the cause.
--
#12
Posted 21 August 2008 - 11:59 AM
Starting profile on 21/08/2008 at 12:46:25
Operating System: Microsoft Windows 2000 Professional (32-bit), version 5.00.2195 Service Pack 4
Program Executable: c:\winnt\system32\REGSVR32.EXE
Program Arguments: /s SSUBTMR6.DLL
Starting Directory: D:\Autopatcher\
Search Path: C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;D:\xy4;D:\xy3;D:\NBWIN;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static
Options Selected:
Log DllMain calls for process attach and process detach messages.
Hook the process to gather more detailed dependency information.
Log LoadLibrary function calls.
Log GetProcAddress function calls.
Log debug output messages.
Automatically open and profile child processes.
--------------------------------------------------------------------------------
Started "REGSVR32.EXE" (process 0x448) at address 0x01000000. Successfully hooked module.
Loaded "NTDLL.DLL" at address 0x77F80000. Successfully hooked module.
Loaded "MSVCRT.DLL" at address 0x78000000. Successfully hooked module.
Loaded "KERNEL32.DLL" at address 0x7C570000. Successfully hooked module.
Loaded "ADVAPI32.DLL" at address 0x7C2D0000. Successfully hooked module.
Loaded "RPCRT4.DLL" at address 0x77D30000. Successfully hooked module.
Loaded "USER32.DLL" at address 0x77E10000. Successfully hooked module.
Loaded "GDI32.DLL" at address 0x77F40000. Successfully hooked module.
Loaded "OLE32.DLL" at address 0x7CE20000. Successfully hooked module.
Entrypoint reached. All implicit modules have been loaded.
DllMain(0x7C570000, DLL_PROCESS_ATTACH, 0x0006FD30) in "KERNEL32.DLL" called.
DllMain(0x7C570000, DLL_PROCESS_ATTACH, 0x0006FD30) in "KERNEL32.DLL" returned 1 (0x1).
Injected "DEPENDS.DLL" at address 0x08370000.
DllMain(0x08370000, DLL_PROCESS_ATTACH, 0x00000000) in "DEPENDS.DLL" called.
DllMain(0x08370000, DLL_PROCESS_ATTACH, 0x00000000) in "DEPENDS.DLL" returned 1 (0x1).
DllMain(0x78000000, DLL_PROCESS_ATTACH, 0x0006FD30) in "MSVCRT.DLL" called.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsProcessorFeaturePresent") called from "MSVCRT.DLL" at address 0x78001EAA and returned 0x7C597B45.
DllMain(0x78000000, DLL_PROCESS_ATTACH, 0x0006FD30) in "MSVCRT.DLL" returned 1 (0x1).
DllMain(0x77D30000, DLL_PROCESS_ATTACH, 0x0006FD30) in "RPCRT4.DLL" called.
LoadLibraryA("kernel32.dll") called from "RPCRT4.DLL" at address 0x77D87E19.
LoadLibraryA("kernel32.dll") returned 0x7C570000.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "InterlockedCompareExchange") called from "RPCRT4.DLL" at address 0x77D87E29 and returned 0x7C57B5FC.
DllMain(0x77D30000, DLL_PROCESS_ATTACH, 0x0006FD30) in "RPCRT4.DLL" returned 1 (0x1).
DllMain(0x7C2D0000, DLL_PROCESS_ATTACH, 0x0006FD30) in "ADVAPI32.DLL" called.
DllMain(0x7C2D0000, DLL_PROCESS_ATTACH, 0x0006FD30) in "ADVAPI32.DLL" returned 1 (0x1).
DllMain(0x77E10000, DLL_PROCESS_ATTACH, 0x0006FD30) in "USER32.DLL" called.
DllMain(0x77E10000, DLL_PROCESS_ATTACH, 0x0006FD30) in "USER32.DLL" returned 28311553 (0x1B00001).
DllMain(0x7CE20000, DLL_PROCESS_ATTACH, 0x0006FD30) in "OLE32.DLL" called.
GetProcAddress(0x77D30000 [RPCRT4.DLL], "I_RpcForcePickleCleanup") called from "OLE32.DLL" at address 0x7CEE2BE6 and returned 0x77D38159.
GetProcAddress(0x77F80000 [NTDLL.DLL], "NtQuerySystemInformation") called from "RPCRT4.DLL" at address 0x77D87B65 and returned 0x77F889DC.
GetProcAddress(0x77F80000 [NTDLL.DLL], "NtOpenFile") called from "RPCRT4.DLL" at address 0x77D87B80 and returned 0x77F886AC.
GetProcAddress(0x77F80000 [NTDLL.DLL], "RtlInitUnicodeString") called from "RPCRT4.DLL" at address 0x77D87B8D and returned 0x77FABE9C.
DllMain(0x7CE20000, DLL_PROCESS_ATTACH, 0x0006FD30) in "OLE32.DLL" returned 1 (0x1).
LoadLibraryExA("SSUBTMR6.DLL", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) called from "REGSVR32.EXE" at address 0x01001932.
Loaded "SSUBTMR6.DLL" at address 0x2E8C0000. Successfully hooked module.
Loaded "MSVBVM60.DLL" at address 0x66000000. Successfully hooked module.
Loaded "OLEAUT32.DLL" at address 0x779B0000. Successfully hooked module.
DllMain(0x779B0000, DLL_PROCESS_ATTACH, 0x00000000) in "OLEAUT32.DLL" called.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsTNT") called from "OLEAUT32.DLL" at address 0x77A23F12 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsProcessorFeaturePresent") called from "OLEAUT32.DLL" at address 0x77A272EB and returned 0x7C597B45.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "SetCriticalSectionSpinCount") called from "OLEAUT32.DLL" at address 0x779C83EB and returned 0x77F8EFA2.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "SetCriticalSectionSpinCount") called from "OLEAUT32.DLL" at address 0x779C83EB and returned 0x77F8EFA2.
LoadLibraryA("C:\WINNT\system32\ole32.dll") called from "OLEAUT32.DLL" at address 0x77A0FA9E.
LoadLibraryA("C:\WINNT\system32\ole32.dll") returned 0x7CE20000.
GetProcAddress(0x7CE20000 [OLE32.DLL], "DcomChannelSetHResult") called from "OLEAUT32.DLL" at address 0x77A0FAB3 and returned 0x7CE6C864.
DllMain(0x779B0000, DLL_PROCESS_ATTACH, 0x00000000) in "OLEAUT32.DLL" returned 1 (0x1).
DllMain(0x66000000, DLL_PROCESS_ATTACH, 0x00000000) in "MSVBVM60.DLL" called.
GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsTNT") called from "MSVBVM60.DLL" at address 0x66001BD5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsProcessorFeaturePresent") called from "MSVBVM60.DLL" at address 0x66002832 and returned 0x7C597B45.
DllMain(0x66000000, DLL_PROCESS_ATTACH, 0x00000000) in "MSVBVM60.DLL" returned 1 (0x1).
DllMain(0x2E8C0000, DLL_PROCESS_ATTACH, 0x00000000) in "SSUBTMR6.DLL" called.
DllMain(0x2E8C0000, DLL_PROCESS_ATTACH, 0x00000000) in "SSUBTMR6.DLL" returned 1 (0x1).
LoadLibraryExA("SSUBTMR6.DLL", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned 0x2E8C0000.
GetProcAddress(0x2E8C0000 [SSUBTMR6.DLL], "DllRegisterServer") called from "REGSVR32.EXE" at address 0x010019D8 and returned 0x2E8C2C58.
GetProcAddress(0x7CE20000 [OLE32.DLL], "CoCreateInstanceEx") called from "OLEAUT32.DLL" at address 0x77A0FC47 and returned 0x7CE3C281.
LoadLibraryA("oleaut32.dll") called from "OLE32.DLL" at address 0x7CE476DF.
LoadLibraryA("oleaut32.dll") returned 0x779B0000.
LoadLibraryW("rpcrt4.dll") called from "RPCRT4.DLL" at address 0x77D37993.
LoadLibraryW("rpcrt4.dll") returned 0x77D30000.
DllMain(0x2E8C0000, DLL_PROCESS_DETACH, 0x00000000) in "SSUBTMR6.DLL" called.
DllMain(0x2E8C0000, DLL_PROCESS_DETACH, 0x00000000) in "SSUBTMR6.DLL" returned 1 (0x1).
DllMain(0x66000000, DLL_PROCESS_DETACH, 0x00000000) in "MSVBVM60.DLL" called.
DllMain(0x66000000, DLL_PROCESS_DETACH, 0x00000000) in "MSVBVM60.DLL" returned 1 (0x1).
Unloaded "SSUBTMR6.DLL" at address 0x2E8C0000.
Unloaded "MSVBVM60.DLL" at address 0x66000000.
DllMain(0x779B0000, DLL_PROCESS_DETACH, 0x00000000) in "OLEAUT32.DLL" called.
DllMain(0x779B0000, DLL_PROCESS_DETACH, 0x00000000) in "OLEAUT32.DLL" returned 1 (0x1).
Unloaded "OLEAUT32.DLL" at address 0x779B0000.
DllMain(0x08370000, DLL_PROCESS_DETACH, 0x00000001) in "DEPENDS.DLL" called.
DllMain(0x08370000, DLL_PROCESS_DETACH, 0x00000001) in "DEPENDS.DLL" returned 1 (0x1).
DllMain(0x7CE20000, DLL_PROCESS_DETACH, 0x00000001) in "OLE32.DLL" called.
DllMain(0x7CE20000, DLL_PROCESS_DETACH, 0x00000001) in "OLE32.DLL" returned 1 (0x1).
DllMain(0x77E10000, DLL_PROCESS_DETACH, 0x00000001) in "USER32.DLL" called.
DllMain(0x77E10000, DLL_PROCESS_DETACH, 0x00000001) in "USER32.DLL" returned 1 (0x1).
DllMain(0x7C2D0000, DLL_PROCESS_DETACH, 0x00000001) in "ADVAPI32.DLL" called.
DllMain(0x7C2D0000, DLL_PROCESS_DETACH, 0x00000001) in "ADVAPI32.DLL" returned 1 (0x1).
DllMain(0x77D30000, DLL_PROCESS_DETACH, 0x00000001) in "RPCRT4.DLL" called.
DllMain(0x77D30000, DLL_PROCESS_DETACH, 0x00000001) in "RPCRT4.DLL" returned 1 (0x1).
DllMain(0x78000000, DLL_PROCESS_DETACH, 0x00000001) in "MSVCRT.DLL" called.
DllMain(0x78000000, DLL_PROCESS_DETACH, 0x00000001) in "MSVCRT.DLL" returned 1 (0x1).
DllMain(0x7C570000, DLL_PROCESS_DETACH, 0x00000001) in "KERNEL32.DLL" called.
DllMain(0x7C570000, DLL_PROCESS_DETACH, 0x00000001) in "KERNEL32.DLL" returned 1 (0x1).
Exited "REGSVR32.EXE" (process 0x448) with code 0 (0x0).
#13
Posted 21 August 2008 - 12:33 PM
Exited "REGSVR32.EXE" (process 0x498) with code 0 (0x0).
While the one that works exits:
Exited "REGSVR32.EXE" (process 0x5B4) with code 0 (0x0).
As I said before, unfortunately I have no idea if this is significant and if so, what it means.
Any help appreciated.
Paul B
#14
Posted 21 August 2008 - 01:23 PM
Exited "AUTOPATCHER.EXE" (process 0x168) with code -1 (0xFFFFFFFF).
While the other exits with a code zero.
I am beginning to find this completely baffling.
Paul B
#15
Posted 22 August 2008 - 12:36 PM
Anyway, thanks to James for his attempts to try and solve the problem.
Paul B
#16
Posted 26 August 2008 - 10:58 AM
I was away for a few days, but it's true I was coming to the end of things we can try via a Forum.
Looking at your last three posts, I hadn't really expected you to run Dependency Walker, so thanks for trying.
Here's an explanation of the loose ends:
The failed calls (GetProcAddress(0x7C570000 [KERNEL32.DLL], "IsTNT") are not relevant. This is a very old system call that is no longer implemented. The reason why it can be ignored is explained on the Dependency Walker FAQ page.
For MSVBVM60.DLL (which is the main run-time DLL for Visual Basic 6) a file date of 19/06/2003 tells me this file came with Windows 2000 Service Pack 4. A file date of 23/02/04 tells me that you ran vbrun60sp6.exe. Both work for me.
"Exited "REGSVR32.EXE" (process 0xNNN) with code 0 (0x0)" means the process ran successfully. That just means that the problem is somewhere else.
"Exited "AUTOPATCHER.EXE" (process 0x168) with code -1 (0xFFFFFFFF)." simply means that AutoPatcher crashed. I think we already know that!! (A zero exit code means it ran successfully, as above)
PaulB, on Aug 22 2008, 01:36 PM, said:
One final point occurs to me. What is in your modules folder? If you rename or move this folder temporarily, then for me AutoPatcher doesn't crash, but just reports that there is nothing for it to do.
--
#17
Posted 29 August 2008 - 05:53 PM
Paul B
#18
Posted 29 August 2008 - 06:15 PM
Especially if BCD 98 actually succeeds in putting old versions of the DLL/OCX files in SYSTEM32.
An old version of Comctl32.ocx + Mscomctl.ocx is known to cause a crash and/or a Divide by Zero error under certain (rather complicated) circumstances.
--
#19
Posted 29 August 2008 - 07:29 PM
#20
Posted 31 August 2008 - 03:56 PM
aamd532.dll 1.0.0.1 12/03/2007
comctl32.ocx 6.0.81.5 12/03/2007
comdlg32.ocx 6.1.97.82 14/07/2004
fm20.dll 11.0.5601.0 12/03/2007
fm20emu.dll 1100.5510.0 12/03/2007
mscomctl.ocx 6.1.97.82 14/07/2004
richtx32.ocx 6.1.97.82 12/03/2007
And for VB6:
advpack.dll 6.1.97.82 14/07/2004
asycfilt.dll 2.40.4522.0 19/06/2003
comcat.dll 6.0.2800.1106 24/08/2002
msvbvm60.dll 6.0.97.82 23/02/2004
oleaut32.dll 2.40.4522.0 19/06/2003
olepro32.dll 2.40.4522.0 19/06/2003
stdole2.tlb 2.40.4522.0 19/06/2003
vbrun60.imf does not exist in WINNT
These file versions and dates are all taken from a restore point before I discovered that Autopatcher did not run and before I started trying to copy different files in order to try and get it to work. Incidentally some of the internal dates in the files do not match those that my file manager finds. comdlg32.ocx and richtx32.ocx have internal dates of February 23 2004 and comctl32.ocx has an internal date of 11 October 1999.
Sorry file, versions and dates are squashed together. I can't find a way to separate them.
Paul B
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












