0

さて、私は奇妙な問題に直面しています。Visual Studio 2008 を使用して、Windows 7 のマシンでサンプル MFC リボン アプリケーションを開発しました。メニュー今) .

プロセス モニターを使用して、それぞれの場合 (作業マシンとラップトップで) に読み込まれる .dll を検索しようとしましたが、不足している可能性のあるものを見つけることができません。どんな助けでも大歓迎です。

編集 1 -

わかりました、あなたの応答に感謝します。この問題でいくつかの進歩がありました

  1. IDE を VS 2010 に変更しました。リボンは手動でコーディングされていたので、それをリソースとして追加できれば問題が解決するかもしれないと考えました。VS 2008 には、リボンをリソースとして追加するオプションがありませんでした。

  2. マシンが 32 ビットか 64 ビットかに応じて、VS 2010 Service Pack Redistributable X86/X64 をインストールしました。

  3. VS 2010 から新しい「ribbontest.exe」アプリを作成し、実際のアプリをテストする他のマシンに展開しました。「ribbontest.exe」のリボンは問題なく読み込まれます。

アプリをデプロイして実行すると、最初に古いメニューバーが 1 ~ 2 秒間読み込まれ、次にリボンが点滅して消えます。

私が言及しているアプリの歴史 - 最初、私のアプリケーションにはメニューバー ビューがありました。この記事http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c14929/MFC-Feature-Pack-An-Introduction.htmに従って 、リボンに対応しました。

助言がありますか?

4

3 に答える 3

2

ほとんどの場合、設定の「パス」に競合があります。InitInstance()ハンドラーには、次のようなステートメントがあります。

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
SetRegistryKey(_T("yourappname"));

その名前をまだ変更していない場合は、変更してください。行った場合は、regedit.exeターゲットマシンで開き、下のキー全体を削除してHKCU\Software\yourappnameから、再試行してください。

MFCは、リボン/メニュー/...のユーザーカスタマイズをそのキーの下に保存します。ただし、アプリを変更した場合、これらの設定は必ずしも一致しなくなり、正しく表示されないか、まったく表示されなくなる可能性があります。

于 2012-05-12T08:39:18.737 に答える
0

Visual C++ Redistributable Runtime を宛先マシンにダウンロードしてインストールしてください: http://www.microsoft.com/en-us/download/details.aspx?id=29

または、そのようなもの。アーキテクチャ (x86/x64) が正しいことを確認し、コンパイルに使用したサービス パックのバージョンと一致していることを確認してください。

于 2012-05-11T20:17:22.240 に答える
-1

ジョーは正しいです:あなたは再配布可能である必要があります。

ジョーは正しいです: 32ビットマシンで64ビットプログラムを実行することはできません。

上記のすべては、システムによって示されます(DLLがない、構成が正しくない、または64/32ビットの不一致)

ジョーは正しいです。アプリケーションは、Windowsの最小バージョンとサービスパックの特定のセット用に構築する必要があります。

Joeの投稿に加えて、デバッグビルドではなくリリースビルドを実行する必要があります。これらの要件がすべて満たされ、それでもこの問題が発生する場合は、MFCを静的にリンクして、問題が解決するかどうかを確認してください。

于 2012-05-12T12:02:18.450 に答える