質問 |
||
| QNo.4006810 | バイナリデータの書き方が分かりません・・。 | |
|---|---|---|
| 質問者:meeyooyoo |
シリアルポートでバイナリデータを送信したいのですが、バイナリをどう書けがいいのか分りません。 送りたいコードは16進数で02 00 02 00です。 以下のソースの"123"の部分を書き換えるのだと思うのですが、どう書けば良いのでしょうか? よろしくお願いします。 char* wbuf; DWORD wbyte; lstrcpy(wbuf,"123"); WriteFile(hCom,wbuf,lstrlen(wbuf),&wbyte,&old |
|
困り度:
|
||
| 質問投稿日時: 08/05/08 15:53 |
||
回答良回答10pt |
|
| ANo.2 | >文字数のカウントはどうしたら・・? 現在送りたいコードは、4バイトですから、カウントするのではなく、直接バイト数を指定すれば良いだけです。 WriteFile(hCom, wbuf, 4, &wbyte, &old・・・ |
|---|---|
| 回答者:tig33 | |
| 種類:アドバイス どんな人:専門家 自信:自信あり |
|
| 回答日時: 08/05/08 19:11 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答20pt |
|
| ANo.1 | データの仕込み char wbuf[4] = {0x02,0x00,0x02,0x00}; データの出力 WriteFile(hCom,wbuf,sizeof(wbuf),&wbyte,〜 可変長データの場合は別にバイト数を管理する情報が必要です。 C言語のお約束として、テキストでは終端にNull文字を置きます。 lstrlenはこのNull文字までのバイト数を数えるので、バイナリでは使用できません。 |
|---|---|
| 回答者:nda23 | |
| 種類:アドバイス どんな人:専門家 自信:参考意見 |
|
| 回答日時: 08/05/08 16:04 |
|
| |
| この回答への補足 | 有難うございます! 可変長データなので、バイト数を管理しないといけないのですね。 その方法も、宜しければ教えて頂けますか? lstrlenが使えないとなると、文字数のカウントはどうしたらいいのでしょうか・・? |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |