1

Visual Studio 2008 C ++で作成された小さなプログラムがあり、基本的に単純なテキストファイルを作成および変更します。ここではコードをコピーしませんが、誰かが見たい場合は、www.joggingbenefits.net/hcode.txtを参照してください。

私の問題は-このコードから.exeを作成したいのですが、これは必ずしもVisualStudioまたはredistパッケージがインストールされていない他のWindowsPCで実行できます。

私がこれまでに試したこと:

  • プロジェクト構成を「デバッグ」から「リリース」に変更します
  • 提供されている4つのランタイムライブラリすべてを切り替えます(コード生成中)
  • 生成された.exeのそれぞれを「リリースディレクトリ」に保存します
  • Visual StudioがインストールされていないPCでそれらをそれぞれ実行しようとすると、どれも機能しません...約0.5秒間しか実行されず、消えます。

何が間違っているのかわかりません。ここで非常に重要なものが欠落している必要があります...要約すると、コンパイルモードをリリースに変更し、ランタイムライブラリ、静的/動的ライブラリを変更しようとしましたが、どれも変更しませんでした。生成されたexeのいくつかが実行される可能性があります...

PS-プログラムはすべて管理者として実行され、ウイルス対策などが無効になっているため、そうではありません。また、DLLにリンクしたことはありません。含まれているライブラリはすべて、標準です。

何か案が?

4

5 に答える 5

0

コマンドラインプログラムを作成しました。Windowsがこのプログラムを開くと、入力と出力用のコマンドウィンドウが作成され、プログラムが終了するとすぐにウィンドウが閉じます。

独自のコマンドウィンドウを開いてそこから実行すると、プログラムの終了時にウィンドウが閉じません。

プログラムを直接実行したいが出力を確認したい場合は、プログラムの最後に一時停止を追加できます。

cout << "Please type any key to finish" << endl;
char ch;
cin >> ch;
于 2012-08-08T19:51:13.393 に答える
0

他の人が言及した DependencyWalker のヒント (これは最初に実行する価値があります) とは別に、ターゲット PC にDebugging Tools for Windowsを一時的にインストールすることもお勧めします (これは小さなインストールです)。実行windbgして選択File -> Open Executableし、F5 で実行します。アプリケーションが異常終了すると、エラー メッセージとコール スタックの観点から、どこで問題が発生したかについてより意味のある説明が得られます。私の推測では、dll が欠落しているか、自分のシステムにあるバージョンとは異なるバージョンの dll と競合している可能性があります。

DependencyWalker でできるもう 1 つの便利な方法は、ターゲット PC で実行してProfileオプションを選択することです。これにより、DLL を検索するときに多くの情報が得られます。

どちらの方法でも、ターゲット PC に何かをインストールする必要がありますが、それは一時的なものであり、それを行わないと、なぜうまくいかないのかを推測するだけになることに注意してください。

于 2012-08-08T20:31:01.673 に答える
0

動作していないシステムで DependencyWalker を使用して .exe を開きます。どの DLL が欠落しているかが表示されます (通常は一部の VS2008 ランタイム)。

さらに、Windows イベント マネージャーのエラーの下に、アプリケーションを実行しようとしたときにエラーの説明が表示されるはずです。不足しているファイルがわかっている場合は、それをググって、どの再配布可能ファイルに移動するかを確認できます。

于 2012-08-08T19:49:08.807 に答える
0

コード生成のプロパティ ページにアクセスして、ランタイム ライブラリが /MT または /MTd を読み取り、それ以外 (特に /clr) を読み取らないことを確認します。プロジェクトのクリーン ビルドを実行し、出力状態が /MTd であり、IDE が他の競合するフラグを挿入していないことを確認します。私は VS2010 の経験はあまりありませんが、2008 で必要だったのはこれだけです。

于 2012-08-08T20:12:43.590 に答える
-1

実行可能ファイルが機能していないマシンに「Microsoft Visual C++ 2010 Redistributable Package」をインストールしてみてください。

于 2013-05-16T10:39:34.783 に答える