DxLibFanに戻る
概要:
鼻血ぶ〜〜〜・・・スト!!!!!!(謎)
の如く凄いライブラリ。”boost”のメモ集です。
そんなに期待しないで下さい・・・このページのタイトルのネーミングセンスの如く・・・
STLPortで使う場合・・・
過程:
私の場合、bjamですんなりとコンパイルできたが、なんと!VCのリンカに怒られましたよ!!
basic_string ...が解決できませんと!
いわいる#pragma comment(lib,...)が抜けているとかそういう初歩的なミスではないんです!
ただ、コンパイルできないんです!!!
そういえば、私はSTLPortの使い方をカスタマイズしてた・・・
こんな風に・・・なので、上手く通らなかったんだな!
っ事でstl_user_configに私の普段使っている
STLPortの設定をセッティングして再度、bjam...
症状 変わらないやん!
解決方法:
って、事で、最終手段・・・独自コンパイルに走ることにした。
path_posix_windows.cpp,operations_posix_windows.cpp,exception.cpp,convenience.cppを
static library作るVCのプロジェクトにぶち込んで、プリコンパイル済みヘッダファイルには
STLPortの設定
をインクルードして、DEBUG,Release,Multithread,SingleThreadの計4パターンのライブラリを作る。
これで、無事にboost::filesystemがSTLPortを使って使用できるようになりました。...え?smartじゃない・・・!?
filesystem_error例外処理について
filesystem_errorクラスのwho()とかは使えない(実装されていない)ので、std::runtime_errorでキャッチする。
(このクラスはstd::runtime_errorを継承している。)
完全に日本語に対応しているのか?
そう、この問題を取り上げた通り、SHIFT-JIS問題により対応していません。
(詳しくはSYN氏のHP -> コンピュータ技術関連 -> Programming Tips ->
2バイト目に'\ '(0x5c)を含むSJIS文字 です。)
とりあえず、boost 1.31.0のboost::filesystemではバグバグです^^;
ウーム、どうするべきか〜
サンプル
とりあえず、dkutil 1.02 あたりのfile_finderクラスの中身を見て見てください。
boost::formatのここがすばらしい!
こんばんはコラム |
ちなみに、boost::formatを使う前までは自作したsnprintfを使っていました。
しかし、vsnprintfが上手く浮動小数点 %f とか16進数 %xを解析できない・・・ものに当たってしまい・・・うーむとなったわけです。
これではいかんと、・・・やっぱりそう言う時に見てみるものですね。boost・・・。と、実感したのもこの時だったりします^^;
前前から、プログラミングしている時に思っていたのですが、欲しい物はすでに出来ているのではないかという
思いがけっこう核心に近づいた体験でもありました。
|
sprintf 非常に危険 snprintf を代用するか、精度指定子を使用してください。
http://www-6.ibm.com/jp/developerworks/security/000616/j-buffer-defend.htmlより引用
との事・・・私はsnprintfを使っていましたが、なんかいろいろ仕様があったり、
コンパイラによって標準ライブラリに入っていなかったり名前が違っていたり、
バッファをあふれてしまったら文字が途中で途切れてしまうみたいな問題があったので、
やっぱり、自分で文字列をパースするしかないのか〜。と、ゲチュ〜ンとなっていたところに登場したのがboost::formatなのです。
いや、すごひなぁ〜
sprintfみたいに使う
printfみたいに使う
参考、関係サイト