非控制库DLL何时应显示窗口和其他GUI元素?

非控制库DLL何时应显示窗口和其他GUI元素?,dll,Dll,我相信这主要适用于放入DLL中的自定义对话框,但我确信有些情况我没有想到。DLL(可能除了控件库)显示对话框、弹出窗口或其他GUI元素是否有任何原因?我看到它通过绕过开发人员并将决策直接传递给用户,从而剥夺了使用该库的开发人员的控制权,但在某些情况下,这可能是一种有效的设计吗?还是说它的设计很糟糕?我认为使用异常机制是最好的选择。为什么它会很糟糕 显然,如果应用程序的非GUI层(如数据抽象层或业务逻辑)试图直接显示UI元素,这将是不好的,因为这与分层体系结构相矛盾,并限制了组件的重用 然而,dl

我相信这主要适用于放入DLL中的自定义对话框,但我确信有些情况我没有想到。DLL(可能除了控件库)显示对话框、弹出窗口或其他GUI元素是否有任何原因?我看到它通过绕过开发人员并将决策直接传递给用户,从而剥夺了使用该库的开发人员的控制权,但在某些情况下,这可能是一种有效的设计吗?还是说它的设计很糟糕?

我认为使用异常机制是最好的选择。

为什么它会很糟糕

显然,如果应用程序的非GUI层(如数据抽象层或业务逻辑)试图直接显示UI元素,这将是不好的,因为这与分层体系结构相矛盾,并限制了组件的重用

然而,dll不一定对应于逻辑或功能应用程序层,它是一个部署单元,可以包含从资源到代码到图形元素的任何内容。事实上,您可能希望将业务逻辑和GUI捆绑在单个dll中,例如在创建和部署应用程序扩展时