1

リソースを格納するさまざまなdllを切り替える便利なクラスがあります。各dllは、そのenum値を使用して自身(インスタンスおよびその他の情報)を登録します。情報は静的フィールドに保存されます。enumリソースハンドルを切り替える必要がある場合は、現在のリソースハンドルを切り替えて古いリソースハンドルを保存する、特定のモジュール値を持つコンストラクターを使用します。

状況は以下のとおりです。アルゴリズム付きのdllで現在のモジュール状態を取得しAfxGetModuleState、便利なクラスを使用してリソースハンドルをリソース付きのdllに切り替えてから、アルゴリズム付きのdllで再び使用AfxGetModuleStateします。AfxGetModuleStateアルゴリズムを使用したdllと便利なクラスで返される構造体のアドレスが異なります。

私のアプリケーションはシングルスレッドであるため、によって返される構造のアドレスはAfxGetModuleState同じである必要があります(グローバルである必要があります)が、異なります。

これにより、特定のdllからのリソースをロードできなくなります。これは、便利なクラスでリソースを含むdllに設定された現在のリソースハンドルが、アルゴリズムを使用するdllでnullのままになり、CString::LoadString(nID)失敗するためです。

私のアプリケーションのデバッグバージョンはうまく機能しますが、エラーはにのみ表示されreleasewithdebugます。

PS:私は初心者のMFCプログラマーです。

4

0 に答える 0