2

次のように Windows アプリケーションをセットアップしています。 デバッグ - 使用するライブラリを静的にリンクする exe をビルドします。 リリース - DLL にリンクする exe をビルドします。

リリース バージョンを作成したところです。唯一の違いは、使用されているライブラリの 1 つが DLL としてビルドされていることです。

アプリケーションを実行すると、コマンド ライン引数にアクセスするたびにアプリケーションがクラッシュします。これは、__targv が NULL であるにもかかわらず、argc == 1 であるためです。

誰もこれに遭遇したことがありますか?

4

2 に答える 2

2

__targv の最初のパラメーターは、現在の実行可能ファイルのパスと名前です。

これが、引数カウントが 1 である理由です。 の内容を画面に出力してみ__targv[0]C:/.../.../foobar.exeください.../...foobar.exe

于 2011-05-16T17:39:45.783 に答える
2

提案と助けてくれたみんなに感謝します。

誰かが興味を持っている場合は、ここで問題を解決します。また、他の誰かがこの問題を抱えている場合、これは彼らのためのものです:

DLLを作成する処理で、CランタイムライブラリをMD(DLL型)と(と思っていた)MFCリンク構成(UseOfMFC)に切り替える必要がありました。

UseOfMFC 型を誤って混在させていたため、_targv が台無しになり、AFX 関数を呼び出すときに例外が発生したと思われます。

プロジェクトを再検討し、すべての構成を DLL タイプの CRT を使用するように変更し、UseOfMFC はそのままにしました。これにより、私が抱えていた問題が修正されました。

于 2011-06-15T17:01:19.490 に答える