トップページ > 記事閲覧
構造体やそのvector等をvector<unsigned char>に変換したい
名前:東海鉄道 日時: 2022/08/18 21:06

お久しぶりです 今回は直接DxLibに関係がなくすみません https://dixq.net/g/58.html 等直接ファイルに書き出す方法はいくつか見かけたのですが vector<unsigned char>型でバイナリデータを管理したいためこれらの方法は使えそうになかったです 何か良い方法はありますでしょうか
メンテ

Page: 1 |

Re: 構造体やそのvector等をvector<unsigned char>に変換したい ( No.1 )
名前:管理人 日時:2022/08/18 23:14

vectorクラスについては詳しくないのですが、 構造体を vector<unsigned char> に変換する関数を作れば良いかと思います (・・ std::vector<unsigned char> Convert( const void *Data, int Bytes ) { std::vector<unsigned char> ret; const unsigned char *p = ( const unsigned char * )Data; for( int i = 0; i < Bytes; i ++ ) { ret.push_back( *p ); p++ ; } return ret; } 使用例 struct TEST { int a; float b; double c; char d; short e[ 100 ]; } t; ↑ このような構造体と実態の定義があった場合の変換コード↓ vector<unsigned char> v = Convert( &t, sizeof( t ) );
メンテ
Re: 構造体やそのvector等をvector<unsigned char>に変換したい ( No.2 )
名前:東海鉄道(解決済み) 日時:2022/09/10 18:07

返信がかなり遅くなり大変申し訳ありません 単位ごとの変換につき1つの継承したクラスを利用しBinToVUCとVUCToBin関数を仮想化することで骨組みは共通化できました 又、intやsize_tなどを変換売る時は管理人様のコードを参考に(というかほぼ丸パクリ)して完成させることができました ありがとうございました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存