0xC000005:Access Violation和指针强制转换问题

在调用DLL过程中遇到0xC000005访问违规异常,可能原因包括DLL设计问题、接口调用错误等。具体到案例,由于未正确继承DLL中的类导致问题。另一方面,类指针强制转换问题中,A类调用B类方法并传递指针,当在B类中回调A的虚函数时,直接传递A指针而非强制转换为DataRecver指针才能成功回调并显示OK消息框。
摘要由CSDN通过智能技术生成

 

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值