2006-01-11 [長年日記]
_ IntelMac
IntelMacが出ましたね。
MacBook(旧PowerBook)だけかと思ったら、iMacもIntel版登場。
ここまでは(すごいニュースだけど)既出だし想定の範囲内かな。
個人的に欲しいのはiPod用FMラジオ付きリモコン。
しかし第5世代とNano用だそうだ。。。がっかり。
あと、Keynoteが3にバージョンアップしたので使ってみたいところ。
IntelMacが順調に発表されたので、新iBookに期待します!
_ [C++] _MAX_PATH
_MAX_PATHはパス長を定義している定数だ。
以下のヘッダファイルで定義がある。
stdlib.h
windows.h
私の環境では両方とも同じ値260でした。この値は環境依存になる模様。
(MAX_PATHってのもある。)
でも、WindowsAPIのFindFirstFile(filename,buf)は
パス長がMAX_PATHに制限されているとは限らない。
通常のFindFirstFileAと、Unicode拡張版のFindFirstFileWがある。
FindFirstFileWはパス名の前に"¥¥?¥"を付加することで、
MAX_PATHよりも長い32,000ワイド文字へ拡張される。
あまのさん、bear.miniさんに教えて頂きました。ありがとです。
追記:内容に誤りがあったようなので修正。bear.miniさんたびたびありがとう。
ていうか、MSDNではFindFirstFileWで検索してもひっかからないし、
FindFirstFileの記述にAとかWとか出てこない。んー、使ってみないとわかんないな。
参考文献 http://risky-safety.org/~zinnia/doc/maxpath.html http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_findfirstfile.htm
_ [C++] gccでマングリングされた名前を見るコマンドnm
メソッドにthrow()を加えたら(例外制限したら)マングリングは変更されるか?
以下のように、gccでは変わらない。
$ echo "void func(int) {}" | g++ -x c++ -c -o x - ; nm x
00000000 T _Z4funci
$ echo "void func(int) throw() {}" | g++ -x c++ -c -o x - ; nm x
00000000 T _Z4funci
デマングリングは-Cオプション。
$ nm -C x
00000000 T func(int)
satoyuさんに教えて頂きました。ありがとうございます。
_ [VS][C++] ランタイム型情報を有効にするオプション(/GR)
VC++でデバッグをしていたら、
"Access violation - no RTTI data!" char [255]
と言われた。
RTTIは Runtime Type Information(実行時型情報)。
聞いたところ、デバッガがギブアップした状態のようだ。
プロジェクトオプションのC/C++で
「ランタイム型情報を有効にする(/GR)」を有効にしたところ出なくなった。
ONにすると型情報が実行ファイルに書き出されて、
実行時に把握可能になるそうだ。
dynamic cast を使う場合にはこのオプションが必要とのこと。
ONにした際の副作用としては、
型名が漏れるので場合によってはクラス名がばれてしまうことや、
実行モジュールサイズが若干大きくなることだそうだ。
bear.miniさんに聞いたおかげではまり時間が短く済みました。ありがたや。
_ 知識の洪水
新しい職場で今までとは趣の違う仕事をしている。
今まで知らなかったこともたくさんある。
自分の無知さ加減に苦笑いするときもあるけど、
周りの人がいろいろ教えてくれるうれしさの方が上回っている。
自分の中にどんどん知識が流れ込んでくる、まるで知識の洪水だ。
ありがたいことである。
読む方が読めば分かるのだが、今日書いた内容も基本的な部分が多い。
そんなことも知らないのかと呆れられるかもしれないが、
無骨に一歩一歩進むしかないし、
まとめて書くことで理解が深くなるし、
さらに周辺の情報を教えてもらえることもあるし、
後から進んで来る方の手助けになることもあるかもしれない。
未来のために今日も一歩進もう。
そんな状況をスローガンにしてみると。
「そんな昔のことは忘れたさ - 映画「カサブランカ」 - 」
「無知をあきらめない」
「知らなくなたっていいじゃないか 人間だもの」
なんてな。(笑)
「いやなブログ」にもマングリングの記事があったのでメモ。(情報提供:あまのさん)<br>http://namazu.org/~satoru/blog/archives/000095.html
ちょっと補足です。マングルされた名前が例外指定の有無で変化するかの件ですが、C++規格(ISO/IEC 14882)の§15.4/12 Exception specifications に "An exceptionspecification is not considered part of a function's type." と書いてあるのでGCC以外も変化しないと思いますよ〜。
生きてると日々お勉強だね…無理しなくても皆向上してる。きっと。と思う。
>satoyuさん<br>おお、規格書を当たって頂きありがとうございます。<br>いろいろ勉強させて頂きました。<br>私も規格書を当たるくせと技術を身につけた方がいいな。<br><br>>さくやさん<br>こちらではいらっしゃいませ!ですよね。どぞご贔屓に!<br>ホントに人生是勉強ですわ。<br>少年老い易く学成り難し。<br>と、若者ぶってみる。(笑)<br>でも、知らないことがあるからこそ、人生面白い。
IntelMacはもう少し先かと思ってました。<br>iPodでFMいいねえ〜。<br>でも私はiPodは車載なのでFMはカーステですが。<br>iPod本体や純正のリモコンて<br>アルバム送り、戻しやプレイリスト切替が<br>一発操作で出来ないことがずっとネックに感じてましたが<br>ちょっと前にこんなものを買いました。<br>http://www.princeton.co.jp/product/digitalaudio/pspiprf.html<br>これならアルバム、プレイリストの移動が一発だし、<br>ワイヤレスなのでリモコンをハンドル中央部に<br>リャンメンテープで取り付けてます。<br>あ、でもこれもいがさんの3Gは。。。
ナターシャさんiPodハードユーザーですね!!<br>確かにアルバム送り、プレイリスト切り替えはあると便利だなぁ。<br>私も車載したいです。<br>iPod対応カーステ買おうかなぁ。<br>でもまだ今のカーステ使えるしなぁ。<br>いっそカーナビか?!
私も対応カーステは欲しいですね〜。<br>ただ今の社用オンボロ車に付けてもなあ〜という感じなので、<br>車を買い替えたら考えることにします。<br>というわけで、今はカセットアダプタ接続です。<br>でも音はぜんぜん悪くないです。<br>むしろ車に付いてるスピーカがショボいので。(^^;
カセットのやつはなかなかいい音するんですよね。<br>Line入力と比べてもそんなに遜色ないのではないでしょうか。<br>FMトランスミッターは私にはダメです。<br>音が薄くて耐えられません。<br>でも、今のカーステだとそれしか方法ないのだよなぁ。。。