• 締切済み

95上で通信できません。

コンソールで動作するポート通信プログラムを書いたのですが、 Win95上で動作しません。どうしてダメなのかがわかりません。 おわかりになる方がいらっしゃったら ご教授いただければと思います。 Modeコマンド発行と通信を行う実行モジュールを 記述したバッチファイルを、VBのSHELLで実行しています。 実行モジュールはBorland C++Builder 5でコンパイルしています。 95上でもfopenは実行されています。 なお、2000上では問題なく動作しています。 よろしくお願いいたします。 以下実行モジュールのコード(抜粋)です。  //ポートオープン  fi=fopen("COM2","r");  //20文字以上になるか、エンターの入力があったら受信終了  while (fs>0){    memset(c,'\0',sizeof(c));    s=fread(c,sizeof( char ), 1,fi);    if (c[0] == '\r') break;    if (c[0] == '\n') break;    strcat(ReadBuf,c);    fs=fs-s;  }  //ポートクローズ  fclose(fi);

みんなの回答

  • katouka09
  • ベストアンサー率50% (130/256)
回答No.1

逆に質問です。 開発マシン(Win2000)と実行しているマシン(Win95)は同じマシンですか? それとも開発マシンと実行しているマシンは別のマシンですか? 実行モジュールを直接DOS窓で実行するとどうなりますか? Win95のマシンにはCOM2はありますか? Win95用ではなくて、Win2000用にアプリを作っていませんか? C++Builder5でコンソールアプリというとWin32API使用でしょうか? それともDOSでも動かしたいのでしょうか? ところで、Win95でfopenしていることはどうやって確認しましたか? そもそも、C++Builderをお使いなら専用のシリアルポート制御のコンポーネントがあると思いますので、それを使ってみては?

sugar_donut
質問者

補足

katouka09様 レスありがとうございます。わかりにくくて申し訳ありません。 「MODEコマンドを発行」と書きましたので 自分の中では「DOS画面のプログラム」と書いた気になっていました。 開発は2000、テスト機は95で、別のマシンです。 これのほかに実機(95)があります。 作成した実行モジュールのDOS画面からの実行はできませんでした。 通信環境は正しく整っているとお考えください。 APIは試しました。実機でだけ動作しませんでした。 fopenは2000上ではデバッガで、 テスト機上では戻り値の画面表示で確認しています。 ただし内部的が正常に動作したかはわかりません。 エラーなく終了してきたと言うだけです。 コンポーネントというのは、GUIの部品という認識でよろしいでしょうか? 今回はDOS画面上でのプログラムなので使えません。

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

関連するQ&A