我编写了一个VC程序,时多文档MFC程序。运行时无任何问题,就是不弹出文字提示信息,但我要的文件可以无误的自动形成。当我要结束程序时,弹出windows错误消息。
-----------------------
MyFMFC:MyMFC.exe--应用程序错误
“0x00d788b5”指令引用的“0x00000028”内存。该内存不能为“read”。要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
-----------------------
安确定后,又有一类似错误
“0x01500750”指令引用的“0x6372748b”内存。...这是怎么回事,有谁可以帮我解决?谢谢。

解决方案 »

  1.   

    我在调试时,发现了如下调试信息:
    Loaded 'D:\WINNT\System32\ntdll.dll', no matching symbolic information found.
    .
    .
    .
    Loaded 'D:\WINNT\system32\mcd32.dll', no matching symbolic information found.
    The thread 0xF18 has exited with code 0 (0x0).
    Detected memory leaks!
    Dumping objects ->
    E:\lzgprogram\seminar\mtl-HUST\MyMFC\IgesAcis.cpp(39) : {3038} client block at 0x049D4E10, subtype 0, 88 bytes long.
    a IgesAcis object at $049D4E10, 88 bytes long
    .
    .
    .
    E:\lzgprogram\seminar\mtl-HUST\MyMFC\IgesAcis.cpp(39) : {1548} client block at 0x049A1EE8, subtype 0, 88 bytes long.
    a IgesAcis object at $049A1EE8, 88 bytes long
    E:\lzgprogram\seminar\mtl-HUST\MyMFC\IgesAcis.cpp(39) : normal block at 0x028D5088, 28 bytes long.
    Data: < P > E0 50 8D 02 03 00 00 00 03 00 00 00 01 00 00 00 
    {92} normal block at 0x028D5040, 3 bytes long.
    Data: <cm > 63 6D 00 
    {91} normal block at 0x028D4FE8, 28 bytes long.
    Data: <@P > 40 50 8D 02 03 00 00 00 03 00 00 00 01 00 00 00 
    {90} normal block at 0x028D4FA0, 6 bytes long.
    Data: <meter > 6D 65 74 65 72 00 
    {89} normal block at 0x028D4F48, 28 bytes long.
    Data: < O > A0 4F 8D 02 06 00 00 00 06 00 00 00 01 00 00 00 
    {88} normal block at 0x028D4EF0, 20 bytes long.
    Data: <l91 > 6C 39 31 00 01 00 00 00 01 00 00 00 02 00 00 00 
    {87} normal block at 0x028D4E98, 20 bytes long.
    Data: <l91 > 6C 39 31 00 01 00 00 00 00 00 00 00 01 00 00 00 
    {86} normal block at 0x028D4E40, 20 bytes long.
    Data: < 81 ; > F0 38 31 00 01 00 00 00 A0 00 3B 00 00 00 00 00 
    {85} normal block at 0x028D4DF8, 12 bytes long.
    Data: < 81 ; > E0 38 31 00 01 00 00 00 9C 00 3B 00 
    {84} normal block at 0x028D4DB0, 12 bytes long.
    Data: <<;1 6 > 3C 3B 31 00 01 00 00 00 0C B0 36 00 
    {83} normal block at 0x028D4D68, 12 bytes long.
    Data: <,;1 6 > 2C 3B 31 00 01 00 00 00 0C B0 36 00 
    {82} normal block at 0x028D4D00, 40 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    {81} normal block at 0x028D4CA8, 28 bytes long.
    Data: < M > 00 4D 8D 02 0A 00 00 00 00 00 00 00 04 00 00 00 
    {80} normal block at 0x028D4C60, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {79} normal block at 0x028D4C08, 28 bytes long.
    Data: <`L > 60 4C 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 
    {78} normal block at 0x028D4BC0, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {77} normal block at 0x028D4B68, 28 bytes long.
    Data: < K > C0 4B 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 
    {76} normal block at 0x028D4B20, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {75} normal block at 0x028D4AC8, 28 bytes long.
    Data: < K > 20 4B 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 
    {74} normal block at 0x028D4A80, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {73} normal block at 0x028D4A28, 28 bytes long.
    Data: < J > 80 4A 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 
    {72} normal block at 0x028D49E0, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {71} normal block at 0x028D4988, 28 bytes long.
    Data: < I > E0 49 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 
    {70} normal block at 0x028D4940, 10 bytes long.
    Data: < > 00 00 00 00 00 00 00 00 00 00 
    {69} normal block at 0x028D48E8, 28 bytes long.
    Data: <@I > 40 49 8D 02 0A 00 00 00 00 00 00 00 01 00 00 00 ---------------
    其中主要集中在两种信息:一个是"no matching symbolic information found", 另一个 "{2984} client block at 0x049D2E00, subtype 0, 88 bytes long"。我程序中 The 39 line of IgesAcis.cpp is :
    //--------------------------------
    IMPLEMENT_DYNCREATE(IgesAcis, CDocument)
    //--------------------------------
    此调试信息一定与我程序的运行错误相关,谁可以告诉我如何使用IMPLEMENT_DYNCREATE,如何解决此问题?谢谢。
      

  2.   

    Detected memory leaks! // 内存泄漏要调试程序,请单击“取消”。 // 点取消,然后选择 Debug 可以看到出错的行,如果安装了 VC 并且运行的是 MyMFC.exe 的 DEBUG 版本的话