typedef VOID (WINAPI*fg)(const TCHAR *,HWND);
fg pp=NULL;
  HMODULE hand=NULL;
  hand=LoadLibraryA("CoreInterface.dll");
  pp=(fg)GetProcAddress(hand,"EncryptThread");
pp(_T("d:\\123456.txtww"),AfxGetMainWnd()->GetSafeHwnd());;
if (m_hEncryptEvent==NULL)
{
AfxMessageBox(_T("jhhlkhkl"));
}
//MessageBoxA(NULL,(LPSTR)m_hEncryptEvent,(LPSTR)m_EncryptEvent.m_hObject,MB_OK);
//HMODULE hand1=NULL;
WaitForSingleObject(m_hEncryptEvent,INFINITE);  FreeLibrary(hand);
红色部分出错,在debug时通过,release时出错求高手帮忙看看。
这是以个类中的一个处理函数;m_hEncrypt是HANDLE对象已经初始化

解决方案 »

  1.   

    hand=LoadLibraryA("CoreInterface.dll");--最好用绝对路径,相对路径不保险。
     if (m_hEncryptEvent==NULL)
    这是红色部分吧,就判断一个句柄是否为空,怎么会出现你说的错误呢?
      

  2.   

    找到了,是在编译DLL时,没有输出.def文件;在debug时写了,调release时被系统清了
    导致空引用谢谢两位高手
      

  3.   

    同意!加一句:if (hand==NULL)吧