2013年9月4日水曜日

std::stringをlength()で文字列の長さを格納しようとしたとき、何故か文字列は入っているのに長さに0が返される。おかしいと思ってデバッカで追ってみると、std::stringの長さを格納している_Mysizeが0のままである事に気が付いた。おそらく何か(自分のコードに)ミスがあるためだろうとは思うが、取りあえず、

std::string buff;
buff._Mysize=文字数;

と(手動で代入)する事で、length()から文字数が返るようになった。


丁度RS232Cのプログラムを書いていた所だったのだが、以下の行で_Mysizeが正しくセットされていなかった。何がいけなかったのだろうか……。.c_str()の処理で情報量が減ってるとか?
ReadFile(hComPort, (LPVOID*)SCI_pBufferRecieved.c_str(), lengthOfRecieved, &SCI_LengthOfPutOrRecieved, NULL);

0 件のコメント:

コメントを投稿