デバックモードとEXEモードで動きが違う – プログラミング – Home

デバックモードとEXEモードで動きが違...
 
通知
すべてクリア

デバックモードとEXEモードで動きが違う


むせん
 むせん
(@むせん)
ゲスト
結合: 23年前
投稿: 33
Topic starter  

お世話になっています。
シリアルポートを使った通信のプログラムを作成しています。
VBで作成したプログラムを実行するとうまく動くのですが、EXEファイルを作成するとうま
く動きません。
原因を調べてみた結果EXEファイルのほうがタイミングが遅いことでした。
タイミングはFor分の空ループでタイミングをとっています。
何か設定がおかしくてそういう現象が起こるのでしょうか?
アドバイスをお願いします。

VB6.0 Win2000


引用解決済
トピックタグ
よねKEN
 よねKEN
(@よねKEN)
ゲスト
結合: 22年前
投稿: 19
 

> タイミングはFor分の空ループでタイミングをとっています。

これはDOS時代のテクニックで、以下の理由から、
今はあまり役立たないテクニックです。

・コンパイラの最適化によって除去される場合がある。
・マシンスペックにより一定のタイミングを取れない。
・同スペック・同環境であっても、Windowsではマルチタスクで
複数のプログラムが動いているので、そもそも動かすたびに
動作にかかる時間にはバラつきがある。

APIのSleep関数でウェイトをかけてはどうでしょうか?


返信引用
むせん
 むせん
(@むせん)
ゲスト
結合: 23年前
投稿: 33
Topic starter  

よねKEN さん、アドバイスありがとうございました。
返答が遅れてしまってすいませんでした。
VBでSleepは使えなかった気がしますが。
結局VBを断念してVCで作ることにしました。
VCではSleepを使うと1MS単位でウェイトをおくことが出来ますが、VBでは1秒単位
でないウェイトがおけないみたいです。
よって1秒未満の細かい処理はVBではできないのではっていう認識をもちました。
もし認識が間違っているのであればご指摘お願いします。


返信引用
ぴのきよ
 ぴのきよ
(@ぴのきよ)
ゲスト
結合: 21年前
投稿: 3
 

ミリ秒単位で指定できる予感・・・

http://bluetree.2.pro.tok2.com/monjyu/bord/etc1/msg/123.html

秒単位でしかできないSleepってWinApiを直に呼び出す以外のSleepが
用意されているってことでしょうか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました