Sheepshaver crashes at start

About SheepShaver, a PPC Mac emulator for Windows, MacOS X, and Linux that can run System 7.5.3 to MacOS 9.0.4.

Moderators: Cat_7, Ronald P. Regensburg, ClockWise

Post Reply
FuzzyElmo
Student Driver
Posts: 12
Joined: Thu Jul 01, 2004 11:51 am

Sheepshaver crashes at start

Post by FuzzyElmo »

I start Sheepshaver, and it shows a little window in the upper left corner of the screen. (basically a titlebar with about 100x16 pixels of blacak enclosed) It shows that for one second until I get "Sheepshaver has encountered a problem..." and I have to close. I checked the details of the crash and it said the ModName msvcrt.dll . I must have something to do with that-- but what do I do?
ataxy
Master Emulator
Posts: 374
Joined: Sun Jan 25, 2004 3:49 pm
Location: Canada
Contact:

Post by ataxy »

dont know how to help you but here thats a start ...:
The message comes up because the copy of Msvcrt.dll is incompatible with the copy of Msvcp60.dll, most probably because one of them (probably Msvcrt.dll) is an old version. Both of these files are part of the Microsoft Visual C compiler run-time library.

It is a protocol of software installation programming that an application should never replace a new file by an older version. However, when it was installed, it is still possible that the printer driver may have overwritten the Msvcrt.dll file in the Windows\System folder with an older version. But it is more likely that the driver installation software has installed an old version of the file in its own folder, and it is this version that loads when a printer-monitor utility starts up with the rest of the system, because an application always searches in its own folder for the DLL files it needs before looking in the Windows and Windows\System folders.

The problem occurs when other applications that use this DLL library search the RAM to see if it is already loaded (all device-drivers are loaded into RAM). If the application finds it in RAM, it uses that version. So if an old version of a DLL file is loaded at start-up by a device driver, all of the applications that use it will use that version instead of using the newer version in the Windows or Windows\System folders.

To view the versions of modules (DLL and driver files) loaded into RAM in a Windows 9.x system, go to Start => Programs => Accessories => System Tools and run System Information. You can see the list of 32-bit modules loaded under the heading Software Environment. The version and the exact path from which it was loaded is provided. Look for system library files that are located outside the Windows\System folder.

Next, use the Find => Files or Folders feature to locate the msvc*.dll files. With View => Details enabled, sort the files alphabetically by clicking the Name column header.

Don't rely on the file date shown to tell you which of the files is the newest version, because the date of the file is often set to the same date as the date the whole package was released or completed. If you right-click on each of the files and click Properties, the Version tab provides the exact version number.

The version of Msvcrt.dll included with Windows 98 SE is 6.008397.0. The 6.00 indicates that it was distributed with the Visual C 6.0 file library, but the important version information is the 8397. If you find a newer, higher version on your computer, it just means that the file has been updated.

You should find that there are several versions of this file in different locations. Check for the latest version, and copy it into the Windows\System folder. If you can't find a later version than the one in use, you can try entering sfc in the Start => Run box to tun the System File Checker, which can be used to extract the original version from the Windows CD's cabinet (.cab) files.

Note that in Windows Me. Windows 2000, and Windows XP systems, it is not so easy to manipulate files in this way.
ataxy
Master Emulator
Posts: 374
Joined: Sun Jan 25, 2004 3:49 pm
Location: Canada
Contact:

Post by ataxy »

here is the solution to the overwriting with a new version to solve that dll problem :
credit goes to :Christian Blackburn @ http://ntcompatible.com


Hi Kle,
First off, while Lotus was trying to helpful DLL hell has absolutely nothing to do with firewalls or a lack thereof. I wouldn't recommend installing a firewall unless you want to add additional complexity, instabability, and reduce the over all performance of your system. My guess is AIM and IEXPLORE were both designed for newer versions of MSVCRT.DLL and you installed some older piece of software that overwrote a more recent copy.

You aren't going to be able to overwrite that file outside of DOS or possibly safe mode, however doing that manually is not a necessary job anyways. Just run an update package and let it overwrite the file while windows is still loading. Please download and install these updated Visual C++ Service Pack 6 runtimes (MSVCRT stands for MS Visual C++ Runtimes by the way):
http://download.microsoft.com/download/ ... up_enu.exe
Keep that file and you may want to re-install it periodically after installing other titles. It will always be safe to re-install this package even when it's out of date, because when it's out of date it won't overwrite anything, unlike whatever the program was that hosed your MSVCRT.dll.

By the way it should be noted that newer and far superior operating systems like Windows 2000 (best choice), Windows XP, and 2003 all have some built in file protection and will restore most system files if a program overwrites one of them with an outdated version. I would recommend Windows 2000, because XP and 2003 are still too new and are still loaded with bugs, though both are far more stable than Windows 98 or 98SE.

Cheers,
Christian Blackburn
Post Reply