none
.exeファイルから実行できない RRS feed

  • 質問

  • VSから実行するのではなく,実行ファイルからアプリケーションを実行できるようにしたいのですが,

    もともとは実行可能でしたが,プログラムを拡張するとできなくなりました.

    今の具体的な現状を以下に記載します.

    私が作ったアプリケーションに対して,

     

    (1)VS2005を開いて,直接実行すると,実行できます.

    (2)Debugフォルダ内のexeファイルを任意のフォルダに入れて実行しようとしても,

    dllファイルがみつからないと表示され実行できません.

     

    見つからないと警告されたdllファイルを以下に示します.

     

    (1)msvcr80d.dll

    このdllファイルを実行ファイルと同じ階層にコピーすると

    こんどは別のdllファイルが見つからないと警告されます.

    警告される順番は以下の通りです.

    (2)msvcr80d.dll

    (3)msvcp80.dll

    (4)msvcr80.dll

     

    ここまでコピーして実行すると,

    R6034

    An application has made an attempt to load the C runtime library without using manifest.

    This is an unsupported way load Visual C++ DLLs.

    You need to modify your application to build with a manifest.

    For more information, see the "Visual C++ Libraries Shared Side-by-Side Assemblies" topic in the product documentation.

    というデバックエラーが表示されます.

     

    マニフェストが問題なのかと思い,上記に示されている

    Visual C++ Libraries Shared Side-by-Side Assembliesのサイトで調べましたが良くわかりませんでした.

     

    また,リビルド時の中間ファイルが残されている可能性もあると思い,一度Debugなどのファルダごとけしてからリビルドしても解決できませんでした.

    どなたかアドバイスをお願いします.

     

    2011年6月10日 4:23

回答

  • 手元にVS2005がない(VS2008しかない)のでやや異なっているかもしれませんが、
    プロジェクトのプロパティを表示して、「構成プロパティ」の「リンカ」の
    「マニフェストファイル」のページの「マニフェストの生成」が「いいえ」に
    なっているのかもしれませんね。そうなら「はい」にしてみてください。
    マニュアルのR6034の項目のページに説明がありますので参考にしてください。

    また、テスト上必要な場合を除いて、一般にデバッグビルドを別のフォルダ、ないし、
    別のPCにコピーして実行しても、なんらの有益な結果をもたらすものではありませんし、
    明確に禁止されている場合があります。

    2011年6月10日 6:08

すべての返信

  • 手元にVS2005がない(VS2008しかない)のでやや異なっているかもしれませんが、
    プロジェクトのプロパティを表示して、「構成プロパティ」の「リンカ」の
    「マニフェストファイル」のページの「マニフェストの生成」が「いいえ」に
    なっているのかもしれませんね。そうなら「はい」にしてみてください。
    マニュアルのR6034の項目のページに説明がありますので参考にしてください。

    また、テスト上必要な場合を除いて、一般にデバッグビルドを別のフォルダ、ないし、
    別のPCにコピーして実行しても、なんらの有益な結果をもたらすものではありませんし、
    明確に禁止されている場合があります。

    2011年6月10日 6:08
  • 仲澤@失業者さん,度々質問に答えていただきありがとうございます.

    今,確認したところまにゅフェストファイルの生成は「はい」になっていました.

    しかし,マニュアルのR6034の項目を参考に

    「マニュフェスとツール」の項目の「入力と出力」の

    「埋め込みマニュフェスト」を「はい」にしたところ

    うまくいきました.

    ありがとうございました.

    2011年6月10日 7:51