ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

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が使えないとなると、文字数のカウントはどうしたらいいのでしょうか・・?
この回答へのお礼この回答にお礼をつける(質問者のみ)