トップページ > 過去ログ > 記事閲覧
データ通信(再び)
名前:ライブラリ使用者 日時: 2008/09/23 00:52

前回投稿からしばらくぶりです。 以前に投稿したのと同じような現象が発生していまして、再度確認させてください。 hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=664&p=1 No36で返信してるサンプルで確認しています。 今回もデータ送受信で不一致が発生してしまっています。(サンプルでエラー発生します) 2.24bでは問題なく動いてそうなのですが、最新の更新版取得して発生しています。 また、以前はVC6.0を使用していたのですが、今回はVC2008に切り替えました。 (VC2008だとおかしい? 追記 確認母数は少ないのですが、VC2008でビルドした場合に発生しています。  解決の糸口になるようなこと分かりませんでしょうか? (DXライブラリ側の問題ではないかも) VC2008で上記サンプル動かす場合は、 #pragma warning(disable : 4996) を付け加えてください。

Page: 1 |

Re: データ通信(再び) ( No.1 )
名前:管理人 日時:2008/09/23 22:26

うーん、私の環境だと VisualC++ 2008 で実行しても大丈夫でした・・・ もしかしたら私の手元にある最新バージョンでは正常に動くかもしれませんので、 宜しければこちらのバージョンで試してみていただけないでしょうか? http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: データ通信(再び) ( No.2 )
名前:ライブラリ使用者 日時:2008/09/24 00:38

早速ご確認頂き有難うございます。 上記でも、エラーになることがありました。 ただ、Web閲覧中などその他のデータ通信がある場合、発生し易いようです。 サンプルでは、その他通信が無い場合などはうまく動いているようですが、実際のプログラムではうまくいきません。  こちらの問題の可能性が高いようですので、もう少し追ってみます。
Re: データ通信(再び) ( No.3 )
名前:ライブラリ使用者 日時:2008/09/24 01:10

追加情報です。 以前動かしていたDXライブラリ2.23aから今回提示いただいた2.24dにおきかえて、Debugモードにて起動させようとすると (追加ファイルをコピーして、リビルドしただけ) DebugAssertionFailが発生します。 dbgheap.c 1044行目 Expression:CrtIsValidHeapPointer(pUserData) Release版では、問題ありませんでした。
Re: データ通信(再び) ( No.4 )
名前:ライブラリ使用者 日時:2008/09/24 01:12

すみません、No3の書込みはサンプルではなく実際に作成しているプログラムです。 混乱させてしまうような記載をしてしまい、すみませんでした。
Re: データ通信(再び) ( No.5 )
名前: 日時:2008/09/24 04:44

>Debugモードにて起動させようとすると >DebugAssertionFailが発生します。 Release版のDxLib.libをDebug版で 或いはその逆リンクしたりしていませんか? GlobalAlloc,GlobalFree, malloc,calloc,free,new,deleteなどの混在や アプリが確保した領域をDLLが開放したり、 またはその逆を行うと起こる可能性があります。 2.24cのコードを見ましたが、 前回の投稿のとき指摘された、 RecvSocket関数の修正が反映されていないように 思えます。
Re: データ通信(再び) ( No.6 )
名前:ライブラリ使用者 日時:2008/09/24 23:38

>Debugモードにて起動させようとすると >DebugAssertionFailが発生します。 2.24dのDxLib.hを少しいじったら直りました。 73行目、77行目を入れ替え。 #pragma comment( linker, "/NODEFAULTLIB:libcmt.lib" ) が_DEBUG時に設定されていたためのようです。 _dまたは最後にdがついているファイルがデバッグ版のものと認識していますので、このせいではないかなと。 >管理人様、ご確認お願いします。 また、私は使用していないため影響がないだけかもですが、同139行目、145行目も逆なのではないかと思います。 併せてご確認ください。
Re: データ通信(再び) ( No.7 )
名前:管理人 日時:2008/09/27 03:50

うーん私の環境では Web閲覧をしながらでも1万回以上を正常にカウントできました・・・ また、 #pragma comment( linker, "/NODEFAULTLIB:libcmt.lib" ) は、libcmt.lib をリンクしないでくれ、という意味なので 理屈の上では現状の記述では間違っていません 謎が多いですね・・・ > 通さん たまに更新作業を誤ってソースが逆戻りしてしまうので 改めて現在のバージョンを確認してみましたが、 以前ご指摘頂いた部分の修正は反映されていました
Re: データ通信(再び) ( No.8 )
名前:ライブラリ使用者 日時:2008/09/27 21:00

ソースの確認ありがとうございます。 うーん・・・、問題なしですか 困った、こちらも処置なし状態です。 自分の方のプログラムをもう少し、見直してみます。
Re: データ通信(再び) ( No.9 )
名前:ライブラリ使用者 日時:2008/09/28 12:15

データ送受信に関しては、こちらのミスでした。 データ送受信させる構造体宣言の参照位置を間違えていました。 まだヒープが壊れてるなど、動作としては不十分ですがそれもこちらの可能性がしてきました。 お騒がせしてすみませんでした。
Re: データ通信(再び) ( No.10 )
名前:ライブラリ使用者 日時:2008/09/29 22:48

ヒープの方もこちらのミスでした。 new char[X]でX以上の値にまで、書込みなどしていました。 ただ、なんで今回になってAssertに引っ掛かったのかは謎。

Page: 1 |