当初、私の MFC プログラムには、2 つの言語のリソースを含む 1 つの .rc ファイルがありました。しかし、今では 2 つの個別のリソースのみの dll プロジェクト (同じソリューション内) に 2 つの .rc ファイルがあり、LoadLibrary() と AfxSetResourceHandle() を使用して言語を動的に選択します (この記事を参照しました)。
うまく機能しているように見えますが、1 つの問題は、リソースのみの dll プロジェクトのダイアログに対して、ダイアログ エディターを適切に使用できないことです。ダイアログは正常に表示されますが、コントロールをダブルクリックしたり、プロパティ メニューを使用してイベント ハンドラーを追加することはできません。同じソリューション内の別々のプロジェクトにあるコードとリソース ファイルを接続する方法はありますか?
編集:
少しアプローチを変えました。別のリソース プロジェクトで新しい RC ファイルを作成する代わりに、それらをメイン プロジェクトで作成し、ビルドから除外しました。そして、それらを別のリソース プロジェクトから参照できるようにしました。
重要なポイントの 1 つは、各 RC ファイルの読み取り専用シンボル ディレクティブ#include "resource.h"
に追加したことです (これを行うには、リソース ビューで RC ファイルを右クリックし、[リソース インクルード] 項目を選択します)。これは、複数の言語のリソースを持つメイン プロジェクトの元の RC ファイルに関連するものです。なぜ追加する必要があるのかわかりませんが、サテライト dll が正常に動作するために必要なようです。"resource.h"
残っている 1 つの問題は、その複数の RC ファイルをどのように維持するかです。リソースを追加するために、元の RC ファイルとその resource.h ファイルを維持する必要がある場合は、最初にリソースを元の RC ファイルに追加してから、それらをすべての言語固有の RC ファイルにコピーする必要があります。これは正しい方法ですか、それとも元の RC ファイルなしで続行できますか?