• ベストアンサー

バイナリデータの書き方が分かりません・・。

シリアルポートでバイナリデータを送信したいのですが、バイナリをどう書けがいいのか分りません。 送りたいコードは16進数で02 00 02 00です。 以下のソースの"123"の部分を書き換えるのだと思うのですが、どう書けば良いのでしょうか? よろしくお願いします。 char* wbuf; DWORD wbyte; lstrcpy(wbuf,"123"); WriteFile(hCom,wbuf,lstrlen(wbuf),&wbyte,&old

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

データの仕込み char wbuf[4] = {0x02,0x00,0x02,0x00}; データの出力 WriteFile(hCom,wbuf,sizeof(wbuf),&wbyte,~ 可変長データの場合は別にバイト数を管理する情報が必要です。 C言語のお約束として、テキストでは終端にNull文字を置きます。 lstrlenはこのNull文字までのバイト数を数えるので、バイナリでは使用できません。

meeyooyoo
質問者

補足

有難うございます! 可変長データなので、バイト数を管理しないといけないのですね。 その方法も、宜しければ教えて頂けますか? lstrlenが使えないとなると、文字数のカウントはどうしたらいいのでしょうか・・?

その他の回答 (1)

  • tig33
  • ベストアンサー率50% (6/12)
回答No.2

>文字数のカウントはどうしたら・・? 現在送りたいコードは、4バイトですから、カウントするのではなく、直接バイト数を指定すれば良いだけです。 WriteFile(hCom, wbuf, 4, &wbyte, &old・・・

関連するQ&A

専門家に質問してみよう