用过SetClipboardViewer的朋友进来看看

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

4 个解决方案

#1


指针错误,每个变量都要初始化。

#2


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

#3


问题解决了,但是不知道什么具体原因,反正是结构定义的问题
原来的数据结构:
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()函数得不到数据抛出异常所致,
请高手指点一二,分析一下原因

#4


自己解决了,不是上面的问题.
是消息映射有错,^_^

#1


指针错误,每个变量都要初始化。

#2


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

#3


问题解决了,但是不知道什么具体原因,反正是结构定义的问题
原来的数据结构:
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()函数得不到数据抛出异常所致,
请高手指点一二,分析一下原因

#4


自己解决了,不是上面的问题.
是消息映射有错,^_^