引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

时间:2021-05-26 15:20:22
刚刚接触C++,刚刚接触opc。。。 引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。
用MFC写opc客户端,想实现对opc服务器不停的读数据,已实现单次读,要开一个线程实现循环读数(不然界面会卡死),在写线程函数时遇到报错如下: 引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。
代码如下:
线程函数代码
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

类定义
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

求大佬解救。解决这一错误,或别的方法实现循环读数而不致界面卡死。

5 个解决方案

#1


断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

#2


引用 1 楼 paschen 的回复:
断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

可我在CClintDlg下用就可以,其他说明也没干,不过这样只是单次读数据,代码如下,不报错
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

#3


引用 2 楼 万俟淋曦的回复:
Quote: 引用 1 楼 paschen 的回复:

断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

可我在CClintDlg下用就可以,其他说明也没干,不过这样只是单次读数据,代码如下,不报错
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

单步跟踪程序运行,观察变量变化情况,分析原因

#4


单步调试跟踪,当出现这个断言错误的时候,定位这一行,查找原因,解决

#5


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处, 看不懂时双击下一行,直到能看懂为止

#1


断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

#2


引用 1 楼 paschen 的回复:
断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

可我在CClintDlg下用就可以,其他说明也没干,不过这样只是单次读数据,代码如下,不报错
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

#3


引用 2 楼 万俟淋曦的回复:
Quote: 引用 1 楼 paschen 的回复:

断言说的很明确了,这个指针是NULL,你访问了NULL指针导致崩溃,检查有没为指针赋有效值

可我在CClintDlg下用就可以,其他说明也没干,不过这样只是单次读数据,代码如下,不报错
引发了异常: 读取访问权限冲突。 opc.m_pErrors 是 nullptr。

单步跟踪程序运行,观察变量变化情况,分析原因

#4


单步调试跟踪,当出现这个断言错误的时候,定位这一行,查找原因,解决

#5


崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处, 看不懂时双击下一行,直到能看懂为止