|
This problem usually comes up when a computer user gets SmartHeap
error messages (MEM_BAD_POINTER is a common message). The user has
several applications running and is uncertain which one of the apps
is responsible for the error message.
There are several ways to solve this. In order of preference they
are:
- Run each suspect application in isolation. If no other app is
running (per task manager or a similar utility) and you get the
SmartHeap error message, then most likely you have found the culprit?
- Contact the software vendors whose products are associated with
the error and ask them if their product uses SmartHeap.
- If 1 and 2 above don't work, then the following procedure can
be used. Note that there is some risk involved any time you
rename
a file in your system directory. It's possible (though quite
unlikely) that renaming the SmartHeap DLL will cause serious
problems on
your system. It's also possible that you could accidentally rename
the wrong file, with unforseen consequences. PROCEED
WITH CAUTION AND AT YOUR OWN RISK!!
If the misbehaving application is using the SmartHeap DLL you
can determine which app it is by renaming the SmartHeap DLL: the
app that uses it will then refuse to initialize and you'll see
an error message about a missing DLL. First, close the applications
that are suspect. Then you need to determine if there is a SmartHeap
DLL in your system directory (either winnt\system32, windows\system
or windows\system32). Search the system directory on your machine
for sh*w32.dll and see if you get a match for any of the following:
shw32.dll, sh31w32.dll, sh32w32.dll, sh33w32.dll, sh34w32.dll.
If you find one or more of these, rename them or move them out
of the system directory. Remember to make a note of your changes
so you can undo them when you're finished testing.
Now try to start these apps again. Hopefully one of them will
fail with an error message: now you know who's using SmartHeap.
To clean up, just restore the original names to the DLLs you changed.
Then contact the appropriate software vendor about the error.
- If you do not find a SmartHeap DLL in your system directory,
you might try searching your entire hard drive(s): it's possible
that the DLL is stored in some subdirectory of the application.
In that case you can probably determine what app uses SmartHeap
by knowing which app owns that subdirectory.
- If you don't find any SmartHeap DLLs on your system, that probably
indicates that the app you're looking for is statically linked
to SmartHeap. There is no convenient way for you to determine
if an app is statically linked to SmartHeap, so contact the various
vendors and ask them.
|