2011-05-16 12 views
2

ARGC私は、Windowsアプリケーションのセットアップを持っている: デバッグ - 静的それは リリースを使用してライブラリをリンクexeファイルを作成しますが - DLLMFCのWindowsアプリケーションで__targvがNULLです。次のように== 1

にリンクexeファイルを構築し、私はちょうどリリースを作成しましたバージョンでは、唯一の違いは、使用されているライブラリの1つが現在DLLとして構築されていることです。

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

これまでに誰かがこれを遭遇しましたか?

+3

'main'関数をどのように宣言し、どのように使用環境(MSVCのバージョン、ソリューション設定など)を教えているかを示してください。 – 0xC0000022L

+0

引数を追加するとどうなりますか? –

答えて

2

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

これは、引数の数が画面上__targv[0]のコンテンツを印刷1の試みであり、なぜ、あなたはC:/.../.../foobar.exeのようなものが見えるはずです(.../...があなたの実行可能ファイルへのパスで、foobar.exeは、exeファイルであること場所)へ

+1

次に、__targv [0]にデータがあるのに対して、__targvがNULLであるのはなぜですか? – Joe

+1

実際に何が起こっているかを見ることができるように、コードと出力の一部を投稿できますか? – ALOToverflow

1

感謝誰もが提案と助けを求めています。

誰かが興味がある場合は、ここで問題を解決してください。

DLLを作成する処理で、CランタイムライブラリをMD(DLLタイプ)に切り替える必要がありました。(私は思ったようにMFCのリンク設定を考えました) UseOfMFC)。

私は誤ってUseOfMFCの型を混同していましたが、AFX関数を呼び出すときに例外を引き起こすだけでなく、_targvを台無しにしていると思います。

すべての設定をDLLタイプCRTを使用して変更し、UseOfMFCをそのままにしてプロジェクトを再訪しました。これは、私が抱えていた問題を解決しました。

関連する問題