在工程中建立了若干个类,之前在每个类中都添加了必要的消息比如:Onpaint等。现在想在一个对话框类中继续添加鼠标双击消息,可是添加之后编译链接都没问题,在运行时调出该对话框时windows就不能继续运行了,系统会产生错误报告。然后对该程序进行调试,当运行到此处的错误提示为:Unhandled exception in myprogram.exe:0xC0000005:Access Violation.
请问各位,这是怎么回事呢?程序中有一处代码是读取一个文件的内容,错误定位就是在那里,可是在添加鼠标双击消息之前我并没有对读取文件那做任何的改动啊。现在要是把读取文件那段代码注释起来就没有问题了,不知道这是为什么?请高手指点一下吧。难道一个工程中添加的消息处理个数有上限么?谢谢了!

解决方案 »

  1.   

    我查了一下,应该不是读取文件的函数错了,现在的情况是这样的:我的工程中有四个对话框类,这四个对话框会分别由主对话框中的按钮单击消息调出。这四个子对话框都是要读取指定的文件并显示的,我在这四个类中分别定义了一个私有的字符指针型成员变量用于存储从文件中读出的数据,并且在类的构造函数中为他们动态分配了内存(内存分配没有问题),然后在类的成员函数中用CFile类的read函数读取文件数据,而这个指针就用来做read函数的形参。现在我发现,在类的构造函数中这个指针变量指向的内存地址为0x00376f08,而当程序执行到read函数时,这个指针指向的内存地址变为0x00422848。就是说我在构造函数中为这个字符指针分配的地址在程序中改变了,程序也正是执行到read函数时出错的。请问可不可以认为这里就是问题的原因呢?指针指向的地址是怎么改变的呢?各位帮帮忙吧。谢谢了