解决方案 »

  1.   

    file:///c:/bug.jpg
    这是啥图?不能用本地文件啊…………
    你要把图上传到CSDN相册,然后再把相册中的图的地址贴上来
      

  2.   

    晕,你这等于给个应用程序exe,然后让别人给你 改 bug(不是找BUG)的效果是一样一样的啊…………
    表示压力很大…………
      

  3.   

    其实我只想找到这种bug的入手
      

  4.   

    原来是在Printf的地方出错,后来我索性把printf去掉了,就出来这个错误,觉得很不解。
      

  5.   

    调试IPSMediaTest 注意内存窗口ebp附近的内存何时被修改掉的.
      

  6.   

    printf打印的数组有越界等问题
      

  7.   

    从栈的状态来看,最有可能是在某个拷贝数据的时候把byte/word类型的数据按照dword拷贝了.
    后面的0x00000cd9之类的来看,应该是堆上new出来的空间.
    建议检查和new相关的指针以及相关拷贝.
      

  8.   

    进入IPSMediaTest 函数的时候对 ebp+4地址的内存设置数据断点
      

  9.   

    在debug模式下,看看callstack不行吗
      

  10.   

    来段代码,和lz效果一样#include "stdafx.h"
    #include  <string.h>
    int main(int argc, char* argv[])
    {
    int *p = 0;
    __asm
    {
    lea eax,[ebp+4]
    mov p,eax
    }
    *p = (int)0x00000CC1;
    return 0;
    }
      

  11.   

    想来应该是IPSMediaTest里面某个子函数的问题.
      

  12.   

    看看你的puts()函数里面咋执行的,可能是空指针之类的
      

  13.   

    指针没问题的的,我把puts换成Printf也是一样的错。
    @err错误代码是183(当文件已存在时,无法创建该文件。 )
    感觉有点无厘头
      

  14.   

    没有以0结尾,建议看看你那个itoa后的结果
      

  15.   

    如果一次两次循环出现这种情况还可以猜,太多了就只有调了...
    或者在上面通过OutputDebugString输出一些数据的值,然后到出错的时候观察看下变化.
      

  16.   

    你的try 能捕获到异常么?
      

  17.   

    Debug下调试一下看看puts(s);看看参数对不?