掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SetTimer OnTimerのイベント間隔を変わらないようにするには (ID:66588)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆様にご理解いただきたくて、実際のプログラムではなくて仮の名前を使ったりしたところ、間違えてしまいました。 大変失礼致しました。 お教えいただいたとおりに書いてみましたが、まだ、エラーで止まりましたので、少し長くなりますが、必要なプログラムの箇所抜粋して見ます。 DigitalSoundCWView.cpp ファイル コールバック関数の宣言 void CALLBACK timerFunc(UINT uiID, UINT uiNo, DWORD dwCookie, DWORD dwNo1, DWORD dwNo2); *************** void CDigitalSoundCWView::OnInitialUpdate() { このイニシアルファイルの中で dwTimerID = timeSetEvent(5, 4, timerFunc, 0, TIME_PERIODIC); を起動 } 注: 5ミリセカンド毎のイベントを発生。 2番目の4は0にするとCPU負担が大きくなるとのことなので 別のサンプルプログラムを参照して4としています。 *************** void CALLBACK timerFunc(UINT uiID, UINT uiNo, DWORD dwCookie, DWORD dwNo1, DWORD dwNo2) { // 10ミリセカンド毎にOnTimerX()関数を呼び出す。 static int TimeCount = 0; TimeCount++; if (TimeCount >= 2){ reinterpret_cast<CDigitalSoundCWView*>(dwCookie)->OnTimerX(); TimeCount = 0; } } *************** void CDigitalSoundCWView::OnTimerX() { int i; int len; CString ss; CString TxCWss; TXDotCount ++; ⇔ ここでエラーとなって止まってしまいます。 if (TXDotCount >= Tx[TXSpeed]){ //この関数の中で色々と処理をさせています TXDotCount = 0; } } ************** // DigitalSoundCWView.h ファイル #pragma comment(lib, "winmm.lib")// timeSetEventを使用するのに必要 DWORD dwTimerID; // SetTimerEvent開設用 void OnTimerX(); // Timer処理 int TXDotCount; // 短点数 エラーとなって止まった時の表示は DigitalSoundCW.exe の 0x004303c4 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00002018 を読み込み中にアクセス違反が発生しました。 です。 宜しくお願いいたします。 なお、TXDotCount ++;の行の書き方、または.hファイルの記載がおかしいのでしょうか? あるいは、ONTimerX()への因数の渡し方がおかしいのでしょうか? 宜しくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.