• ベストアンサー

[VC++6.0]他のソフト動作時のエラー 

VC++6.0にてRS-232Cポートを利用した端末機との通信プログラムを作成しています。 このプログラムは、通常では問題ないのですが他のソフトを起動させることや、他のソフトで処理(重い処理の場合は顕著にでます)を行うと通信エラーが発生し、正常終了できません。 原因としては、他のソフトなどの処理の際に232Cポートからの応答信号が認識できていないため、エラーが発生しているような気がします。 Cプログラムはまだ初心者のため、この回避方法がわかりません。もしかすると単純な命令で回避できるのかもしれないのですが、わかる方がいれば教えてください。 ちなみに、開発環境はVC++6.0EnterPrise Edition、Win2000SP4(CPU=C-1.7G、MEM=512MB)です。 CPUの速度やメモリの容量により多少差はあるかも知れませんが上記ソフトをWinXPSP2のCPU=P4-3GHz、メモリ=1GBで実行してもメモ帳ソフトを起動しただけでエラーになる場合があります。 わからない点などありましたら補足しますので、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

原因が推測どおりであるとするなら、 Windows は、リアルタイム処理には向かない OS なので、 そういうものだと思った方がよいかもしれません。 根本的に解決するには、通信の時間制約自体を改良するか、 専用のドライバを書くべきかと思います。 【警告】 以下の対策は、場当たり的に回避策であり、 不用意に実施すると PC が処理を受け付けなくなる等の 危険性が予測されます。十分に処理を検討してください。 場当たり対応としては、SetPriorityClass で当該処理の 優先度を引き上げれば、改善されるかもしれません。 (完全に解消されるとは限りません)

shippo
質問者

お礼

今回の通信は、通信する信号が少なく処理が数十ミリsecで終了するものでしたので、その通信中だけ回答にあった優先度をあげる処理を実行して、正常に動作できるようになりました。 優先度を上げる時間が少ないこともあってか、他への影響も今のところなさそうです。 助かりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

シリアル通信をハードフロー制御に設定すればよいのでは? もちろんケーブルもハードフローの結線がちゃんとなされたものを用います。

shippo
質問者

お礼

回答ありがとうございます。 ハードフロー制御は端末側が対応していない(結線されていない)ものを使用するため、できませんでした。 でも今後の参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VC++で作成したソフトを実行するとエラーが出ます。

    お世話になります。 初心者です。 OS XP、VC++ 6.0で開発しています。 今、RS232C通信用ソフト(MFC)を作成したのですが、ビルドもNo ErrorでOKでXP上では動いているのですが、Windows 2000 Profetionalでそのソフトを使用して、RS232C通信をしながらマイコン開発用のコンパイラでマイコンソフトのDebugをしているのですが、時々下記のコメントが出て、作成したRS232C通信用ソフトが勝手に落ちます。 何が問題なのでしょうか。 お力を貸していただけませんでしょうか。 "0x77fcb491"の命令が"0x00000038"のメモリを参照しました。メモリが"write"になることはできませんでした。プログラムを終了するには[OK]をクリックしてください。

  • VC++ Windows7,異環境によるエラー

    VC++でプログラムをしているEXEを起動した際に シリアル通信のReadFile関数やスレッド処理などのAPI関数を用いた処理で WindowsOSのエディションやPC性能、.Net FrameWorkのバージョンが異なる事で 不具合が発生する事は考えられますか?

  • VC6.0について

    こんにちは。お世話になります。 VC6.0で作成したアプリケーションがあり、その中で、 ShellExcecuteExを利用し、決まったPDFを開く処理があるのですが、 Windows7で実行した場合、エラーコード:1155が発生します。 PDFの関連付けのエラーと思いますが、同じWindows7でも大丈夫な 端末もあります。 ちなみに、うまくいかない端末で、DOSコマンドで「CALL」文で起動すると うまく起動しました。 何か思いあたる原因があればおしえてください。 Cは、最近勉強しだしたばかりで、過去のプログラムを解読しているところです。 よろしくお願いします。

  • VCでヘッダが見えないエラー

     Vista上でVisualStudio2008を使っています。c:\Program Files下にWinPcapをインストールして、ユーザホームのドキュメントフォルダ下にVCのワークスペースを作成してあります。  この状態で、WinPcapのサンプルプロジェクトを作ってプログラム実行すると、  fatal error C1083: include ファイルを開けません。'pcap.h': No such file or directory というエラーが出ます。VCは管理者権限で起動しています。ヘッダファイルのあるディレクトリの読み取り権限はあります。  他に何を確認すべきか教えてください。

  • VC++でRS232C(COMポート通信)

    VC++でRS232C(COMポート)通信をするソフトを作成していますが、COMポートが開けず通信ができません。ポートが開けない理由を追跡する方法はありますか?

  • リソースエラーで他のソフトが起動しません。

    WindowsXPでメモリ512MBでPhotoshop5.0を使っています。 重い画像を扱っていると、他のソフトを起動したときに、リソースエラーで他のソフトが起動しません。 Photoshopのメモリ割り当ては50%に落としましたが、 それでも他のソフトが起動しませんでした。 単純にメモリを1GB(+512MB)に増設すればよいのでしょうか? それともPhotoshopの設定で解決できるのでしょうか? よろしくお願いします。

  • VC++のエラー(初回の例外)の原因と回避策

    VC++のプログラムを作っていて、たまに実行中に異常終了してしまうことがあります。 「****初回の例外が発生しました: 0xC0000005: 場所 ******* を書き込み中にアクセス違反が発生しました。 」 プログラム的にはメモリファイルマッピングして、そのデータをmemcpyでコピろうとする時にこの関数で上記エラーがでます。 毎回出るわけではなく、何度も実行される(ループなどで)とたまにおきているみたいです。 具体的にはどのような場合にこのようなエラーが生じるのでしょうか? また回避策はありますでしょうか?

  • VC++でboolがエラーになる

    Borland C++ Builderで開発したプログラムを、訳あってVC++(2003)に乗せ変えてビルドしようとしたのですが、boolを使っているところでコンパイルエラーになります。 正確には error C2061: 構文エラー : 識別子'bool' となります。 このエラーの解決法をご存知の方がいらっしゃいましたら、ご教示お願いいたします。

  • [Visual C++]VCが起動しません。(msdev.exe - アプリケーションエラー)

    VC6を起動しようとすると以下のエラーが表示され起動できません。 仕事がらVCが起動できないと仕事になりませんので、どうか解決策を知ってられる方がおられましたら、ご指南願いたいです。 よろしくお願いいたします。 [msdev.exe - アプリケーションエラー] "0x77f52e99"の命令が"0x00000026"のメモリを参照しました。 メモリが"read"になることはできませんでした。 プログラムを終了するには[OK]をクリックして下さい。 プログラムをデバックするには「キャンセル」をクリックしてください。 PCのOSはWindows2000SP4、VCはversion6.0です。 また、以下の同じような事例が記載されたサイトを参考に記載されている対策をとりましたが、解決しませんでした。 参考サイト1 [322553] Windows2000でアプリケーションが起動しない http://winfaq.cool.ne.jp/logs/2k/0659.html 参考サイト2 Visual C++ が起動しない http://egis-s.hp.infoseek.co.jp/garakuta/vcerr.html

  • VisualStudio2010 VC++ エラー

    VisualSutudio2010でVC++を作成中にエラーが出てきました。 下記のようなエラーです。 1IntelliSense: #error ディレクティブ: Please use the /MD switch for _AFXDLL builds c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h 81 3 このエラーについて調べているのですが、対象方法など解るサイトがありましたら、教えて下さい。 宜しくお願いします。