私はコンパイルしてデバッグモードでプログラムを実行すると、C++で書かれたシンプルなudpリスナを持っています。私が受け取っているパケットから。リリースビルドと同じコードを実行すると、うまくコンパイルされているように見えますが、リリースビルドのようなパケット情報は表示されません。私はビルド構成を正確に一致させるためにミラーリングしようとしましたが、それはまだ起こっています。どんな提案も大歓迎です。Visual StudioでのデバッグとビルドのビルドC++ 2008のWin32ランタイムの問題
答えて
これは変数をいくつかの初期値に初期化しない可能性が高いため、デバッグにはある種の値がありますが、リリースではほとんどのものがゼロ(NULL)に初期化されます。したがって、いくつかの条件/ブランチが起こっている可能性があります。期待していないことがあります。たとえば、ソースコードがなければ、本当に問題を見つけるのは難しいです。
は、これは私に一回以上のビットた。.. :)
をMehrdadが示唆されているようにこれはあなたのことを確認し、また...)あなたはのOutputDebugString(のようなものを使って何かを見ることが期待されていない
を想定していますパケットのサイズが1024バイト未満の場合、または取得できません。 XPが出てきたときに私はこのことを理解していましたが、私のコードが2000で動作したのは分かりませんでしたが、XPではありません... send(sendto)は成功を返すでしょう。パケット..
あなたは私にいくつかのサンプルコードを与える場合、私はより多くのを助けることができるはずですので、とにかく、私は、UDPとWin32で多くのことを扱ってきた...
しかしとにかく、チェックしているすべての変数送信側と受信側の両方で何らかの種類のデフォルト値に初期化されています(これは良い方法です)。次に再構築して再試行してください。また、送信する前にsizeof()でパケットサイズを確認し、1024バイトより大きい場合は気にしないでください...受信したパケットのサイズを確認することもお勧めします。サイズが正確でない場合はそれからパケットをドロップします。これは、ブロードキャストについてはより多くの事実を保持するが、依然として適用される。
私が助けてくれれば、少し前にanother questionに多くのUDPコードを掲載しましたが、そのコードは動作しますので参考にしてください。
リリースビルドでは、パフォーマンスに関する理由から、パケットに関するデバッグ情報を出力するコードが削除される可能性があります。
これは、2つのことで、主に行われます。デバッグモードに対してチェックして、そのモードで適切なコードを生成
- 条件付きプリプロセッサディレクティブ。
- ライブラリのデバッグバージョンとのリンク。
これらの内容を削除することは、実際には、リリース版を作成する主な目的です。デバッグ情報は必要ないので、パフォーマンスを犠牲にすることはありません。あなたが本当にそうしたいのであれば、なぜデバッグビルドを出荷しないのですか?[アップデート:コメントに記載されているように、デバッグライブラリにリンクされたソフトウェアをライセンスで配布できないようです。]これは最も類似した設定です(同一の設定より多くの設定を得ることはできません)
ライセンスに基づいて、デバッグランタイムDLLにリンクされたビルドを出荷することはできません。 – RBerteig
@RBerteig:メモをありがとう、私はそれを知らなかった。 –
正確に情報を印刷していますか? TRACEのようなマクロは、リリースビルドでは何もしません。
fprintfなどを使用して印刷している場合は、fflushを呼び出すまでは何も書き込む必要はありません。これは、デバッグバージョンによって頻繁に行われる場合があります。
- 1. Visual Studio 2008 - C++のリリースとしてアプリケーションをビルドする際の問題
- 2. Visual Studio Team ServicesのXamarinビルドの問題
- 3. Visual Studio Community 2015 Update 1ビルドの問題
- 4. EclipseからのVisual Studioビルドのデバッグ
- 5. Visual Studio 2008のデバッグ
- 6. Visual Studio 2017複数ビルド問題
- 7. Visual Studio 2008でビルドプロジェクト(F6)でビルドしていないC++コード
- 8. Visual StudioでC++プログラムをビルドするコード
- 9. Visual Studio 2008で非管理者としてデバッグまたはビルドする
- 10. Visual Studio 2008のデバッグに関する問題
- 11. Visual StudioでC++でスケジュールされたビルド
- 12. のVisual Studio 2008のローカルデバッグパーミッションの問題
- 13. Visual Studio 2008のデバッグ - スキップコード
- 14. JSONCPP Visual Studio 2010でのビルド
- 15. Visual C++ 2008リリースの問題
- 16. Visual Studio 2005ビルドのPythonビルド.lib
- 17. Visual Studio 2008の展開プロジェクトの問題?
- 18. Visual Studio 2008 SP1のインストールの問題
- 19. OmniThreadLibrary C++ builderビルドの問題
- 20. Visual Studio 2008でのラムダ式のデバッグ
- 21. Visual Studio 2008/Webサイトの問題
- 22. Visual Studioビルドの統計
- 23. Visual Studioでデバッグの.appxをビルドする2015
- 24. デトックスの問題:ビルドが失敗しましたビルド/ビルド/製品/デバッグ - iphonesimulator
- 25. Visual Studio 2008のデータセット生成の問題(ネームスペースの問題)
- 26. Visual Studio C++ 2008リンクの質問
- 27. のVisual Studio 2008のアセンブリレベルのデバッグ
- 28. Visual Studio自動ビルド:MakefileとProject.sln
- 29. Visual Studio 2008でビルド番号/ビルドIDをプロジェクトに埋め込みます
- 30. Visual Studio C++の問題
1024バイト以上を受信できますか?パケットを送信するマシンはLinuxを実行しているため、1024バイト以上のパケットを送信することができます。 – whatWhat
私はrecvfrom()を実行できず、1024バイト以上を取得できませんでした。いくつかの種類の制限があります。元々見つけた情報を検索する必要があります。あなたはWin2000でこの同じアプリを試しましたか?それはうまくいくかもしれませんが、私はあなたのコードをまだ見ていないので、私は確かに言うことはできません。 – LarryF