Как правильно обращаться к функциям DLL в приложении SDI? - PullRequest
2 голосов
/ 10 декабря 2010

У меня есть простое приложение SDI, которое работает довольно хорошо.

В последнее время я решил использовать некоторые функции, экспортируемые из DLL.

Все эти функции DLL работают с буфер статической памяти (который приложение должно определять и использовать при вызовах функций).

Фактически некоторые функции DLL следует вызывать, когда в View происходят определенные вещи.

Я не уверен, как мне следует обрабатывать вызов функций DLL.Должны ли у MainFrame, Document и View доступ к ним ( и, следовательно, к буферу памяти )?Или они должны послать приложение, чтобы вместо этого сделать вызов функции?

1 Ответ

0 голосов
/ 17 марта 2011

Определите «правильно»:)

Прежде всего, я думаю, вам будет лучше, если вы свернете все вызовы в DLL и поместите их в одном месте.Тогда на самом деле не имеет значения, какой из них вызывает DLL (с ​​точки зрения интерфейса).Тем не менее, хорошей практикой является информирование только одной части системы о DLL и использование этого интерфейса.В этом случае это зависит от того, что на самом деле делает DLL, то есть над каким уровнем абстракции она работает.Если это данные, относящиеся к Документу, именно Документ должен заботиться о связи.Он может даже использоваться View, если DLL выполняет вещи, связанные с View.Если DLL выполняет связанные с приложением вещи, она должна принадлежать приложению.

Просто задайте себе вопрос, что делает DLL, т.е. какую роль она играет в вашем дизайне, и позвольте этому решить.

...