COMポートの列挙後・・・

解決


DEEPS  2005-05-26 14:04:17  No: 57585  IP: 192.*.*.*

こんにちは。
使用可能なCOMポートを列挙後、
コンボボックスに入れたいのですが
以下のソースで無事に入れることは出来ました。

  int i;
  char buf[5];
  CString com,test,buf1;
  i=1;
  test = "COM";

  for(i=1;i<=10;i++){
    sprintf(buf,"%d",i);
    com = test + buf;

  HANDLE iComm;
  iComm = CreateFile(com,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
  
  if(iComm != INVALID_HANDLE_VALUE)
  {
    combo2.AddString(com+"\r\n");
  }
  CloseHandle(iComm);
  }

日本語のOSでは問題なくコンボボックスのリストに
COM1
COM2
と出たのですが、英語のOSでソフトを起動したところ
COM1||
COM2||
と「||」が出てしまいます。
これを出ないようにするにはどうすればよろしいでしょうか。
教えて下さい。

環境はWINXPSP2  VC++.NETです。

編集 削除
うにゅ  2005-05-26 14:09:45  No: 57586  IP: 192.*.*.*

改行コードが問題では?"\n"もしくは"\r"に変更してみてください。
Windows95以降もしくはUNIXならば"\n"だけで改行可能ですし

編集 削除
YuO  2005-05-26 14:23:35  No: 57587  IP: 192.*.*.*

コンボボックスって複数行の文字列を追加できましたっけ?
単純に
combo2.AddString(com);
では,何か問題点があるのでしょうか?

編集 削除
DEEPS  2005-05-26 14:32:24  No: 57588  IP: 192.*.*.*

>うにゅ様
ありがとうございます。
早速試してみましたが”¥n”では”|”になりました。

>YuO様
目的を言い忘れておりました。
(com)のみですと「|」は入りません。しかし、
作成したソフトにはCOMポートやボーレート、ストップビットなどの選択項目があり、その設定値をiniファイルに保存したいのです。

iniの中身(例)

COM1
9600
1

と各設定値を改行して保存したいのです。

編集 削除
YuO  2005-05-26 15:39:10  No: 57589  IP: 192.*.*.*

そもそも,表示しないデータを文字列で持つから問題になるのでは?
SetItemDataを使うなどしてみてはどうでしょう。

編集 削除
DEEPS  2005-05-26 15:49:35  No: 57590  IP: 192.*.*.*

>YuO様
ありがとうございました。
SetItemDataを使いました。

無事、解決致しました。

編集 削除