- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GetGlyphOutline() 等で「文字列」を書き出す方法を・・)
GetGlyphOutline()関数を使用して文字列を書き出す方法
このQ&Aのポイント
- ゲーム開発でキャラクターやモンスターの名前を表示したい場合、GetGlyphOutline()関数を使用できます。
- しかし、1つのBYTE*の受け皿にvectorから流し込んで描画しているため、メモリの書き出しに時間がかかっています。
- より効率的な方法を見つけるために、BYTE*データを直接扱ったり、文字数を制限したりすることができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
別にBYTEだって配列にできます。 上限が分かっていて、ヒープに余裕があるなら BYTE* buf = new BYTE[1024 * 1024] とかして 使い終わったら delete[] buf すればよいと思います。 vectorはわずらわしいメモリ管理から解放されて 私も大好きなのですが、 万能ではありません。 処理系(特にオプティマイザ)、STLの実装にも依りますが、 大量のデータを扱う時にはオーバーヘッドが大きいようです。 私の経験ですが vector<double> で8192個のデータを削除した時と 自前のdouble配列でmemmove()した時では 速度に驚くほど差が出たことを覚えています。 (CPU速度等の影響も大きいですが) 今回の場合 vectorよりもBYTE配列で実装するほうが向いていると思います。
お礼
BYTEも配列に出来たのですね、 vector についても為になる情報ありがとうございます。 なるべく利用は控えようと思います。 しかしBYTEの配列の使い方がよくわからず困っています、 検索もカタカナのバイトに引っかかり関係ないものばかり、 今後もファイル操作?等で頻繁にお世話になりそうですし、 もしBYTEについて説明しているサイトをご存知でしたら、 教えて頂けると幸いです っ_ _)っ ご回答、有難うございました