您的位置:首页 > 其它

Rational Rose 2003安装时发生SmartHeap Library的MEM_BAD_POINTER错误

2005-09-18 02:03 483 查看

Installing Windows XP Service Pack 2 may result in SmartHeap error messages.

Installing XP Service Pack 2 may cause SmartHeap to report "MEM_BAD_POINTER" errors in a message box on the Desktop, even though there was no such problem previously. We have confirmed that this problem is likely to occur under the following conditions:1) one or both of the boxes on the Languages tab of Control Panel/Regional and Language Options is checked (these boxes install support for East Asian languages and complex script/right-to-left languages).2) Service Pack 2 for XP is installed.3) the user launches an application linked to one of the SmartHeap runtime dynamic libraries (shdw32m.lib or shdw32mt.lib). All versions of runtime non-smp SmartHeap are affected, but it appears that the problem does not occur if debug SmartHeap or any SmartHeap static lib are used. SmartHeap/SMP users note: The problem probably occurs when the app links to the runtime SmartHeap/SMP dynamic lib shdsmpmt.lib, but since runtime SmartHeap/SMP ignores heap errors, and since the bug appears to be benign, the user is never aware that there's a problem.The affected app will run normally, then issue a MEM_BAD_POINTER error at app termination.This appears to be a bug in Service Pack 2, and we have contacted Microsoft. We will update the status of this issue on our support page (http://www.microquill.com/support.html) when new information is available..What MicroQuill is doing about this problem?[align=left]We have contacted Microsoft multiple times. No word yet on when a fix might be available.[/align]
[align=left]As of 11/09/04 we have available a SmartHeap shw32.dll which checks to see if a MEM_BAD_POINTER error is due to this service pack 2 bug. If it is, then by default SmartHeap will not report the error to the desktop. Note that this is not a true fix: a fix is beyond are capability, since the problem is in a Microsoft DLL. But in most cases the error is benign, so if the error message is suppressed, users won't be aware of it.
Send an email to sp2@microquill.com if you want to receive one of these modified SmartHeap DLLs.
[/align]
[align=center]
What can you do about this problem? Some options:[/align][align=left]Contact Microsoft and complain. Most likely they will reflexively explain that it's a MicroQuill problem. Please emphasize that this is a Microsoft bug in the usp10.dll that ships with Service Pack 2. Tell them to contact us (email support@microquill.com) for more info.[/align]
[align=left]You could delay installing Service Pack 2 until this issue is resolved. [/align]
[align=left]If you've installed SP2 and are seeing this problem, and if you don't need support for East Asian languages, right-to-left languages, etc, uncheck the box(es) in the Regional and Language Options applet and follow the instruction for uninstalling (a reboot may be required). [/align]
As of 11/9/04, you can install our DLL that suppresses the error report (see above).
[align=left]Programmers who have access to source code of the affected app and want a temporary workaround can make the following call before the app terminates:

#include "smrtheap.h"
MemSetErrorHandler(NULL);


This won't fix the error, but it will suppress error reporting. Contact MicroQuill tech support (
support@microquill.com
) if you have any questions. [/align]
Many thanks to Serge Lalonde at Infolytica (http://www.infolytica.com/) for his quick reporting of this problem, and for fingering the 'East Asian languages' option as one of the conditions.
我是从以下地址搜索到的: http://www.rational-club.org/index.php?s=85da064ceffa922ca819b033d2f7effd&showtopic=583&pid=2265&st=0&#entry2265 原文地址: http://www.microquill.com/kb/xpsp2.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐