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

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

被折叠的 条评论
为什么被折叠?



