2

私はかなりうまく機能するシンプルなSDIアプリを持っています。

最近、DLL によってエクスポートされたいくつかの関数を使用することにしました。

これらの DLL 関数はすべて、静的メモリ バッファー(アプリが関数呼び出しで定義して使用する必要があります) で動作します。

実際には、 Viewで特定のことが起こったときに、いくつかの DLL 関数を呼び出す必要があります。

DLL 関数の呼び出しをどのように処理すればよいかわかりません。メインフレーム、ドキュメント、およびビューのすべてがそれらに (したがってメモリ バッファに) アクセスできる必要がありますか? または、代わりに関数呼び出しを行うようにアプリにメッセージを送る必要がありますか?

4

1 に答える 1

0

「正しい」を定義してください:)

まず、DLL へのすべての呼び出しをラップして 1 か所にまとめた方がよいと思います。次に、どちらが DLL を呼び出すかは問題ではありません (つまり、インターフェイスに関して)。ただし、システムの一部だけに DLL を認識させ、そのインターフェイスを使用することをお勧めします。この場合、それは DLL が実際に何を行っているか、つまり、どのような種類の抽象化レイヤーで動作することを目指しているかによって異なります。ドキュメントに関連するデータの場合、通信を処理するのはドキュメントです。DLL がビュー関連の処理を行っている場合は、ビューで使用することもできます。DLL がアプリケーション関連の処理を行っている場合、DLL はアプリに属している必要があります。

DLL が何をしているのか、つまり、DLL が設計の中でどのような役割を持っているのかを自問してみてください。

于 2011-03-17T10:02:16.170 に答える