我想在dll中弹出对话框,提示错误,否则的话需要调用者根据返回的错误码来打印错误,这样造成每次调用dll函数,后面都跟一大堆case语句,代码重复严重。
但我遇到一些问题:
一:如果用MessageBox函数弹出错误信息,那么第一个参数应该只能是NULL吧,这样这个弹出框对于调用者来说成了无模式对话框,但我想在用户没有退出错误提示框之前禁止用户操作,所以用MessageBox就不行了。
二:后来我改成用AfxMessageBox,这样解决了问题一,但出现新的问题——不能控制显示标题,这样可能通不过验收!请问应该怎么做?

解决方案 »

  1.   

    你可以把主调的窗口句柄作为参数传给Dll,然后调用 MessageBox 来显示消息框。
      

  2.   

    如果DLL纯粹是提供服务的,弹对话框好象不他好,应该还有其他方法可以提示错误啊,函数返回值,日志文件什么的。
      

  3.   

    用其他的方式弹出对话框吧,不一定要在dll中弹出
      

  4.   

    MessageBox的第一个参数 窗口句柄可以做为参数传入。。不过在DLL中弹出对话框总是不太好
      

  5.   

    看到大家的观点,我想了一下,dll中弹出对话框的确不多见,其实到目前为止我还没有见,但我认为这个问题不能一概而论,不能说只要是dll就不应该弹出对话框,关键要看dll的作用,如果dll是个服务,意思就是说调用它的函数的时候一般是没有人在场的,这个时候一定不能弹出对话框,因为弹出对话框,调用者会被暂停,这样一个小问题就造成服务器不能启动。
        但是如果这个dll的函数在被调用时可能肯定有人在旁,那么弹出对话框是一件很不错的考虑,比如说在调用者内,只有用户点击某个按钮才会去调用dll的某个函数,那么这个dll函数中就可以弹出对话框,比如出错的时候,这样可以省一大堆代码,因为dll出现的目的就是代码公用。    注:我上面说的弹出对话框是指MessageBox和AfxMessageBox。