由于我写的是MFC的程序,我也不知道把MtVerify.h放到那个头文家中,索性把他放到Stdafx.h中但是我故意设置错误
void CTestHongDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
MTVERIFY(socket(AF_INET,SOCK_STREAM,0));
int i= GetLastError();
}
上面我没有加载套接字库,GetLastError返回也不是0,但这个MTVERIFY也没有提示错误对话框,不是说这个宏也适用与GUI的程序吗?我把这个放到控制台程序中测试,没什么问题,可以弹出错误消息框,但是在GUI 中为何弹不出来,是MtVerify.h这个文家我放置错了吗,那应该放置到哪里呢?还是要修改相应的MtVerify.h中的程序,怎么修改,忘大家不吝赐教!!!

解决方案 »

  1.   

    请查看MtVerify.h的内容.他并不是解释GetLastError的返回值.
    只有当socket(AF_INET,SOCK_STREAM,0)返回值为0的时候才会出错误消息框.
    而根据MSDN ,socket函数根本没有返回值啊.
    想查看你是否包含头文件正确.
    例如: DWORD num;
    num=0;
    MTVERIFY(num);
      

  2.   

    粗心.没有仔细看..
    socket(AF_INET,SOCK_STREAM,0)的返回值为 SOCKET类型.
    呵呵..可以肯定返回值不为0