1  Unhandled exception in MyTest.exe:0xC000005:Access Violation

程序中调用某个dll,编译正常,运行时报错如上。产生此问题的原因好像多种,有说是dll内问题和dll内有new有关、有说调用问题接口写错之类等等

我程序中遇到该问题为:没有继承dll中某个类,可能是与dll的设计有关、对所调用的dll理解不够

2  类指针强制转换

问题现象:A类调用B类的方法并传递A的指针,在B中回调A的某个方法时并未实现回调的效果。

A中 (注:A继承了,VilarEventHandler, DataRecver)

int A::OpenStream()
{
 return m_pDev->OpenStream(&m_lSourceStreamID, m_nChn, m_bSubStream, this, (long)this);
 //return m_pDev->OpenStream(&m_lSourceStreamID, m_nChn, m_bSubStream,this,  this, (long)this);
}

void A::DoData( const char * buf, unsigned int size )//虚函数供B中的A指针调接口

{

AfxMessBox("ok");

}

B中

int B::OpenStream(long* lStreamID, int nChn, int bSubStream, A* lpDataRecver, long lParam)

//int B::OpenStream(long* lStreamID, int nChn, int bSubStream,VilarEventHandler* lpEvent, DataRecver* lpDataRecver, long lParam)

{

........

HRESULT hr  = m_iNetSdk->m_fLoginEx(m_lUserID, &camera, NULL, (DataRecver*)lpDataRecver, false);

//HRESULT hr  = m_iNetSdk->m_fLoginEx(m_lUserID, &camera, NULL, lpDataRecver, false);

.......

}

用红色标注的代码对A、DataRecver进行强制转换后,B中的回调A的DoData不成功、不显示ok框

用注释的部分,直接传递A指针,在B中直接使用A的继承DataRecver而不用强制转换,能实现ok框的显示

0xC000005:Access Violation和指针强制转换问题相关推荐

  1. C++:将char*指针强制转换成一个指向结构体的指针

    在使用Socket与雷达进行通信采集数据时,会遇到"打包与解包"的问题,在打包和解包过程中,会涉及到结构体指针与字符指针间的强制转换.如下: 打包就是将包头与信息封装成一定大小的包 ...

  2. 32位指针强制转换成64位数据

    代码如下: void        *paddr = dma buffer physical address; pkt->vp_pkt.paddr       = (uint64_t)paddr ...

  3. C语言指针类型 强制转换

    关于C语言指针类型 强制转换  引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...

  4. C++中指针的强制转换

    转自:https://blog.csdn.net/u012273127/article/details/53260978 其又转自:http://blog.csdn.net/mhjcumt/artic ...

  5. c语言 void**类型转换,void指针类型强制转换

    如何将一个void*强制转换成行指针类型? void*指针可以转换成任何类型的指针. 强制转换即可,比如 (int *)(void *)p; 假设你的数组有N行M列的int型数据. int arr[N ...

  6. C语言指针强制类型转换

    概要: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给 ...

  7. C语言Socket编程为什么要将sockaddr_in强制转换成sockaddr?

    在阅读尹圣雨<TCP/IP网络编程>(C语言示例)的时候,看到将sockaddr_in类型的struct的指针强制转换成了sockaddr类型的指针. 比如hello_client.c: ...

  8. c语言不同类型指针间的强转,C语言中不同的结构体类型的指针间的强制转换详解...

    C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险.只要理解了其内部机制,你会发现C是非常灵活的. 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在 ...

  9. c语言指针的强制类型转换,c语言指针的强制转换

    在c语言中经常看到以下类似的代码: int x = 1; (char*)&x; 这样的形式的代码,这个里面就涉及一个类型转换的问题. 以下是在VC6.0中调试的结果 代码: int main( ...

最新文章

  1. ICRA 2021 | VINS 研讨会概要(附完整视频)
  2. 5、Linux-Mac配置环境变量
  3. [SAP ABAP开发技术总结]CLEAR、REFRESH、FREE内表清理区别
  4. luogu P2572 [SCOI2010]序列操作
  5. 韩顺平循序渐进学java 第12讲 多态
  6. 数据段、代码段、堆栈段、BSS段的区别
  7. Linux_linux常用工具之make/makefile详解
  8. LeetCode 751. IP 到 CIDR(贪心)
  9. php7 viewmodel,【初念科技】| php框架实例: Laravel之Model Observer模型
  10. Springboot启动报错Error handling failed
  11. android文章 - 收藏集 - 掘金
  12. 7-2 学生成绩排序 (15 分)
  13. php商城系统源码的好处有哪些?
  14. linux 目录权限上下文,谢烟客---------Linux之文件安全上下文及特殊权限位
  15. php+转义反斜线,PHP 转义序列(反斜线)
  16. 电脑录音软件哪个比较专业
  17. 简单html模板 二手,二手物品交易HTML5模板
  18. 安徽大学2021计算机考研专业课题型,安徽大学电子信息工程学院2021研究生入学考试科目调整通知...
  19. 【Unity3D】Unity声音与录音与麦克风实时播放
  20. 80老翁谈人生(173):老翁力挺转基因,问责“反转派”

热门文章

  1. Mysql数据库备份恢复
  2. 建设中的中国未来11大著名建筑
  3. android 虚拟键盘的显示与隐藏问题
  4. python设置坐标轴刻度宽度_使用轴网格matplotlib时设置刻度宽度
  5. 看到这些让员工无处遁形专利,我麻了
  6. 通过一个网络错误简述DNS
  7. 数学建模|预测方法:马尔科夫预测
  8. require.js 介绍
  9. PHP7的异常处理机制,set_error_handler和set_exception_handler方法介绍
  10. 蓝队工具:使用VirusTotal API校验样本