ab.com コミュニティ https://www.activebasic.com/forum/ |
|
Windowsの長時間稼業とABの現象 https://www.activebasic.com/forum/viewtopic.php?t=387 |
ページ 1 / 1 |
作成者: | ケースケ [ 2005年10月15日(土) 01:44 ] |
記事の件名: | Windowsの長時間稼業とABの現象 |
雑談掲示板の[1635]で山本管理人さんが > ABは24日以上放置したPCでも起動できます? といわれているので、気づいた点を。(現在起動から39日と8時間少々) AB最新版を使っていますが、 1.命令の説明のツールチップの太字部分の表示が最近おかしいです。 バグ報告板に誰も書かないので、私だけかな? と思うのですが、BytePtr型の変数を打つと、それ以後太字部分が移動しません。 lstrcpy(Msg,"test" と、ここまで打っても太字部分はコンマの前に位置しています。 2.デバグを入れるとプログラムがアクセス違反を起こします。 ただし、2度目はたいていうまくいきますが、時々コンパイラが強制終了されます。 どちらも24日を過ぎてから(多発し始めたのは30日を過ぎてから)なので、ABのバグである可能性は低いと思うのですが、報告します。 |
作成者: | Mario2 [ 2005年10月15日(土) 10:45 ] |
記事の件名: | Re: Windowsの長時間稼業とABの現象 |
> AB最新版を使っていますが、 > (中略) > と、ここまで打っても太字部分はコンマの前に位置しています。 この現状は自分が http://www.discoversoft.net/forum/viewtopic.php?t=372 で報告し、管理人さんもバグだと判断されたみたいです。 ちなみに、SendMessage(0,0,0,の3つ目の「,」を打っても、補完機能(?)上の4番目が太字にはなりません。(他の関数でもたまに起こります(自作のものでも)) > > 2.デバグを入れるとプログラムがアクセス違反を起こします。 > ただし、2度目はたいていうまくいきますが、時々コンパイラが強制終了されます。 これはたまに起こりますね。と言うか、今自分の作っているプログラムでデバッグ実行でファイルオープンの関数を使うとコンパイラが「例外処理 code:6BA」を出してエラーになりますからね・・・・ リリースコンパイルでそのプログラムのファイルオープン関数を使ったら落ちませんが(この話はどこかで書かれてたような・・・・?) > どちらも24日を過ぎてから(多発し始めたのは30日を過ぎてから)なので、ABのバグである可能性は低いと思うのですが、報告します。 自分は今書き込み時は47日08時間経過中です。 でも、ABは(PCも)正常に動作中です。 追記: 自作のソフトの日にち・時間・分・秒の出し方の計算ですが Dim niti As Long Dim niti3 As Long Dim jikan As Long Dim fun As Long Dim byou As Long Dim niti2 As String niti=Fix(GetTickCount()/86400000) jikan=Fix(GetTickCount()/1000/60/60) fun=Fix(GetTickCount()/1000/60-jikan*60) byou=Fix(GetTickCount()/1000-(jikan*60*60+fun*60)) Do jikan=jikan-24 If jikan<24 Then ExitDo Loop と言う形式で算出しています。(86400000は1000/60/60/24です(多分(-_-;))) (Fix()じゃなくてInt()の方を使うべきだろうけど・・・) さて、こちらももうすぐ49.7日(49日16時間48分)になりそうです。 PCがブルーバックかフリーズしないことを願っています(汗)。 |
作成者: | ケースケ [ 2005年10月16日(日) 13:20 ] |
記事の件名: | |
そうでしたか。 補完機能の異常はABのバグだったんですね。 > これはたまに起こりますね。と言うか、今自分の作っているプログラムでデバッグ実行でファイルオープンの関数を使うとコンパイラが「例外処理 code:6BA」を出してエラーになりますからね・・・・ > リリースコンパイルでそのプログラムのファイルオープン関数を使ったら落ちませんが(この話はどこかで書かれてたような・・・・?) 以前にも時々話題になりましたが、私はAPIの特定の関数でエラーが起こることはあまりないのでよくわかりません。 > 自分は今書き込み時は47日08時間経過中です。 > でも、ABは(PCも)正常に動作中です。 すごいですね。 雑談掲示板で少し前にかかれましたが、GetTickCountは47日を過ぎてオーバーフローするようになると、0からカウントをやり直すそうです。 つまりカーネルパニック等は発生しないのでは? と思いますが・・・ [/quote] |
作成者: | Mario2 [ 2005年10月17日(月) 19:43 ] |
記事の件名: | |
> 雑談掲示板で少し前にかかれましたが、GetTickCountは47日を過ぎてオーバーフローするようになると、0からカウントをやり直すそうです。 > > つまりカーネルパニック等は発生しないのでは? と思いますが・・・ やっと?、49.7日が経過しました。 結果として、GetTickCountで計算しているソフトが49.7日を経過するとき、プログラムが強制終了(メモリエラーで)しました。 そのあと、計算しているソフトをまた起動させると、「0」から再スタートしていました。 ABやWindowsには全く問題なく、使用できています。 表示が0からになったので、99.4日が経過すると何日起動しているか分からなくなってしまいますが・・・・(そんなに再起動させないと色々と問題がありそうですけど・・・) |
作成者: | Mario2 [ 2005年10月18日(火) 20:12 ] |
記事の件名: | |
>(そんなに再起動させないと色々と問題がありそうですけど・・・) 行った通りの色々な問題が発生してしまいました・・・ それは、49.7日から(稼動時間が)2日経った本日、大変な自体に陥りました。 まず、PCがいきなり重くなりだし、タスクマネージャで確認し、メモリを消費していたExplorerを強制終了させ、また起動させました。(←これが一番の原因だったのかもしれません) すると、Windowsの設定ほとんどが初期化され、壁紙を設定していないにも関わらず、設定されてしまっていました。 他にも、デスクトップをレジストリを改変して別のフォルダにしていたのですが、元の"C:\DOCUME~1\***\デスクトップ"に戻っていたり、IEのスタートページが初期の設定にされてしまったり、Explorerのフォルダ オプションも初期化されていたりetc... 皆さんは、特別なことがない限りはWindowsは1ヶ月に1回ぐらいは再起動することをお勧めします。 |
作成者: | マティ [ 2005年10月23日(日) 01:40 ] |
記事の件名: | |
プログラムには・・・ String型を使用する関数を使用していますか? (MakeStrやその他の文字型を使用する標準関数を使用しています?) |
作成者: | Mario2 [ 2005年10月23日(日) 10:03 ] |
記事の件名: | |
> プログラムには・・・ > String型を使用する関数を使用していますか? > (MakeStrやその他の文字型を使用する標準関数を使用しています?) 多分自分に聞いているとして・・・ はい、確かにString型を使用しています。たとえば、上記の起動時間も00とかにするために、以下のようにしています。 コード: Dim niti2 As String Dim jikan2 As String Dim fun2 As String Dim byou2 As String niti2=ZeroString(2) jikan2=ZeroString(2) fun2=ZeroString(2) byou2=ZeroString(2) Dim Time2 As String Dim niti As Long Dim niti3 As Long Dim jikan As Long Dim fun As Long Dim byou As Long niti=Int(GetTickCount()/86400000) jikan=Int(GetTickCount()/1000/60/60) fun=Int(GetTickCount()/1000/60-jikan*60) byou=Int(GetTickCount()/1000-(jikan*60*60+fun*60)) Do 'If jikan>24 Then jikan=jikan-24 If jikan<24 Then ExitDo 'End If Loop wsprintf(niti2,"%02u",niti) wsprintf(jikan2,"%02u",jikan) wsprintf(fun2,"%02u",fun) wsprintf(byou2,"%02u",byou) Time2=niti2+":"+jikan2+":"+fun2+":"+byou2 SetDlgItemText(hMainWnd,Time,"現在時刻:"+Date$()+" "+Time$()+" 起動から"+Time2+"経過")プログラムはこちらです。 |
作成者: | マティ [ 2005年10月23日(日) 16:48 ] |
記事の件名: | |
Mario2さん紛らわしい質問で申し訳ありませんでした。 > String型を使用する関数を使用していますか? 文字列処理関数を多用するとメモリーリークが発生しているような気がしたので質問しました。 今回の処理では、特に問題は発生しないと思います。 |
作成者: | mr [ 2005年10月24日(月) 14:55 ] |
記事の件名: | |
落ちるといえば、XPで Debugを入れてデバッグ実行 ↓ デバッグ実行したプログラムを終了 ↓ ソースを一部分書き換え(Debugを入れたまま) ↓ デバッグ実行 って手順を踏むと かなり高確率でデバッガが開いた瞬間にフリーズするんですが これは何なんですかね。 再度デバッグ実行する前にデバッグコンパイルされたプログラムを消すと 発生しないんですが。 あと、98でデバッグ実行を終了した後に デバッグコンパイルされたプログラムを削除しようとすると プログラムが現在使用中になっていて削除出来ないんですが それと関係ありますかね? |
作成者: | ケースケ [ 2005年10月26日(水) 01:49 ] |
記事の件名: | |
私も49.7日を超えました。 Mario2様が [quote] 結果として、GetTickCountで計算しているソフトが49.7日を経過するとき、プログラムが強制終了(メモリエラーで)しました。[/quote] と言っておられたので、どこでエラーするのか見極めようと思い、AB2.62,3.13,4.200でGetTickCountを呼び出し、延々表示するプログラムをデバグモードで実行してみました。 0に戻る瞬間には立ち会えなかったのですが、プログラムには何もエラーは発生していないようでした。 しばらく使えなかったソフトも正常に戻ったので、Mario2様の忠告に従わず、まだまだ再起動せずに動かしつづけてみようと思います。 mr様へ デバッグ実行でDebugを入れると、ほぼ例外なくコンパイル終了直後に落ちます。 けれど、もう一度実行すると今度は正しく動くので、あまり気にしていませんが。 |
作成者: | Mario2 [ 2005年10月26日(水) 18:30 ] |
記事の件名: | |
> 0に戻る瞬間には立ち会えなかったのですが、プログラムには何もエラーは発生していないようでした。 まぁ、自分のプログラムは他にも色々と表示させているので、それが原因かもしれませんが・・・ > しばらく使えなかったソフトも正常に戻ったので、Mario2様の忠告に従わず、まだまだ再起動せずに動かしつづけてみようと思います。 自分には「再起動しろ」と言う権利がないので、ケースケさんが再起動したいときに再起動すれば良いかと思います。 でも、PCが不安定になったら、再起動することはお勧めします。 そういえば、49.7日経過後にExplorer.exeを再起動したら、スタートアップの項目を実行してました。(サービスも実行していたかは不明ですが) こちらの環境等もあるので、そちらでは不安定にならないかもしれませんが。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |