こんにちは。
使用可能な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です。
改行コードが問題では?"\n"もしくは"\r"に変更してみてください。
Windows95以降もしくはUNIXならば"\n"だけで改行可能ですし
コンボボックスって複数行の文字列を追加できましたっけ?
単純に
combo2.AddString(com);
では,何か問題点があるのでしょうか?
>うにゅ様
ありがとうございます。
早速試してみましたが”¥n”では”|”になりました。
>YuO様
目的を言い忘れておりました。
(com)のみですと「|」は入りません。しかし、
作成したソフトにはCOMポートやボーレート、ストップビットなどの選択項目があり、その設定値をiniファイルに保存したいのです。
iniの中身(例)
COM1
9600
1
と各設定値を改行して保存したいのです。
そもそも,表示しないデータを文字列で持つから問題になるのでは?
SetItemDataを使うなどしてみてはどうでしょう。
>YuO様
ありがとうございました。
SetItemDataを使いました。
無事、解決致しました。
ツイート | ![]() |