我有一个运行良好的简单 SDI 应用程序。
最近我决定使用一些由 DLL 导出的函数。
所有这些 DLL 函数都使用静态内存缓冲区(应用程序必须在函数调用中定义和使用)。
事实上,当特定的事情发生在View中时,应该调用一些 DLL 函数。
我不确定应该如何处理 DLL 函数的调用。MainFrame、Document 和 View 是否都可以访问它们(因此也可以访问内存缓冲区)?还是他们应该向应用程序发送消息以进行函数调用?
我有一个运行良好的简单 SDI 应用程序。
最近我决定使用一些由 DLL 导出的函数。
所有这些 DLL 函数都使用静态内存缓冲区(应用程序必须在函数调用中定义和使用)。
事实上,当特定的事情发生在View中时,应该调用一些 DLL 函数。
我不确定应该如何处理 DLL 函数的调用。MainFrame、Document 和 View 是否都可以访问它们(因此也可以访问内存缓冲区)?还是他们应该向应用程序发送消息以进行函数调用?
定义“正确”:)
首先,我认为如果将所有对 DLL 的调用打包并将它们放在一个地方,你会做得更好。然后,哪个调用 DLL 并不重要(即接口)。但是,最好只让系统的一部分知道 DLL 并使用该接口。在这种情况下,它取决于 DLL 实际在做什么,即它旨在处理哪种抽象层。如果是与 Document 相关的数据,则应该由 Document 负责通信。如果 DLL 正在执行与视图相关的工作,它甚至可以被视图使用。如果 DLL 正在做与应用程序相关的事情,它应该属于应用程序。
只需问自己这个问题,DLL 正在做什么,即它在您的设计中扮演什么样的角色,然后由它来决定。