在一个剪贴板的监视程序,我在OnInitDialog里面调用SetClipboardViewer(),在调试版本中运行正常,编译成release版本的时候,一运行就是非法操作,不知道什么原因??

解决方案 »

  1.   

    我在OnInitDialog没有引用什么指针变量啊,运行的时候窗口还没有显示就非法操作了
      

  2.   

    问题解决了,但是不知道什么具体原因,反正是结构定义的问题
    原来的数据结构:
    typedef struct _ThreadData
    {
    CString SouPath;
    CString DesPath;
    }ThreadData,*pThreadData;
    改为:
    typedef struct _ThreadData
    {
    char SouPath[MAX_PATH];
    char DesPath[MAX_PATH];
    }ThreadData,*pThreadData;
    就正常了.
    我定义了两个全局的ThreadData变量,为什么在OnInitDialog并没有引用的时候就异常??不解,后来修改了一些编译选项,在DEBUG版本退出时发现在析构CString也时异常,跟踪发现是一个GetData()函数得不到数据抛出异常所致,
    请高手指点一二,分析一下原因