弱问:DLL调用出错

azurehu 2005-03-31 08:46:28
在调用DLL文件时总是弹出窗口报错,一连弹出6,7个对话框,内容为:
Debug Assertion Faild!
Program:f:\...\TrialDll.exe
File:wincore.cpp
Line:884(或883)

For information on how your program can cause all assertion
failure, see the Visual C++ documentation on asserts.

换成release版有时错误会消失. 本人初学MFC,请大侠们赐教.

PS:做DLL时我是直接将EXE文件的类导入到DLL工程,
菜单等资源也是从RC文件里直接拷贝过来的
不知是否有影响.
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cline 2005-04-02
  • 打赏
  • 举报
回复
你先要让基类的OnInitialUpdate()运行后,再调用你的函数。
azurehu 2005-04-02
  • 打赏
  • 举报
回复
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}

#endif //_DEBUG

我的程序里的这一段DEBUG代码都是这样的呀,好像没有上面写得那么复杂

忘说了,那些错误全部忽略后DLL可以调用出来,但每执行一步操作后又会提示相同的错误。

我在View类的OnInitialUpdate()函数中去掉调用一下函数时就不会出错了,不知是为什么。
void CTrail2View::ShowList()
{
CListCtrl * ctl1;
ctl1 = &GetListCtrl();
ctl1->DeleteAllItems();
try
{
CTrailSet m_rs1;
m_rs1.Open();
m_rs1.MoveFirst();

while(!m_rs1.IsEOF())
{
ctl1->InsertItem(0,m_rs1.m_dwbh);
ctl1->SetItemText(0,1,m_rs1.m_dwmc);
ctl1->SetItemText(0,2,m_rs1.m_fzr);
ctl1->SetItemText(0,3,m_rs1.m_lxdh);
ctl1->SetItemText(0,4,m_rs1.m_email);
ctl1->SetItemText(0,5,m_rs1.m_bz);

m_rs1.MoveNext();
}
m_rs1.Close();
}
catch(CDBException* e)
{
e->ReportError();
e->Delete();
return;
}
}
hushuangyan74 2005-04-01
  • 打赏
  • 举报
回复
你把代码贴出来看看!
DentistryDoctor 2005-04-01
  • 打赏
  • 举报
回复
说明窗口根本没有创建,而Release版本是不会执行到这一段代码的。
DentistryDoctor 2005-04-01
  • 打赏
  • 举报
回复
void CWnd::AssertValid() const
{
if (m_hWnd == NULL)
return; // null (unattached) windows are valid

// check for special wnd??? values
ASSERT(HWND_TOP == NULL); // same as desktop
if (m_hWnd == HWND_BOTTOM)
ASSERT(this == &CWnd::wndBottom);
else if (m_hWnd == HWND_TOPMOST)
ASSERT(this == &CWnd::wndTopMost);
else if (m_hWnd == HWND_NOTOPMOST)
ASSERT(this == &CWnd::wndNoTopMost);
else
{
// should be a normal window
ASSERT(::IsWindow(m_hWnd));//This line?
oyljerry 2005-03-31
  • 打赏
  • 举报
回复
资源是否包含正确,DLL中函数是否正确的导出
zhaotao0982 2005-03-31
  • 打赏
  • 举报
回复
跟dll没有关系,是你的传值有问题,引起了assert
auly403 2005-03-31
  • 打赏
  • 举报
回复
mark

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧