2006-02-01から1ヶ月間の記事一覧

BorlandDeveloperStudio2006 の C++Builder で vcl と ATL を混在するとコンパイルエラーが出る件

C++Builder6J で作りかけの DirectShow アプリを BorlandDeveloperStudio2006 にインポートするとコンパイルエラーが出て悩まされましたが、原因がわかったのでメモっておきます。再現方法ですが、以下のようにコンソールアプリのプロジェクトを生成して、at…

御なんとか

仕事関係のメールを書いていると、相手の会社の事を「御社」と呼ぶのが普通ですが、今日書いていたメールの宛先は省庁の方でした。 はて、先方の組織をなんとお呼びすればよいことやら。…普通に考えると「御省」でしょうか。でもあまり聞かへんし何か違和感…

後日談(2/25追記)

結局書類の山の中からは発見できず、足下のゴミ箱の横にありました。 (しかも手がかりのはずだった封筒の社名が全然ちゃうしー)

ないものを探せ!

仕事も一段落ついてそろそろ帰ろうかと思った矢先、すでに帰宅したボスから電話がかかってきました。 何やら、大事な書類に社印を押して発送するのを忘れたそうで、代わりにやっとけとの指示でした。そしてその書類はボスの机の上に 1m 近く無造作に積み上げ…

今後の予定

テキスト表示でやりたかった事は一通り作ったつもりなので、 回転の利便性をもうちょっと向上したい(選択した点を回転の中心にするとか) 現在対応している描画プリミティブが点だけなので、ライン・ポリゴンくらいは出せるようにしたい(XMLスタイルなのでそ…

SDL OFF ネタのその後

SDL 関西 OFF で披露した id:logion:20060108 のグラフプロッタですが、その後 1/21 の東京 OFF でも IRC 経由で参加、披露していました。この時も実装が全然間に合っておらず、とりあえず SDL_net を組み込んで通信経由で受け取った座標の位置に点が表示で…

はなまるうどんが…

いつも利用している天三のはなまるうどんですが、2/6 からうどんの量の単位が変わってしまいました。 2/5 まで: 小(1玉)・中(2玉)・大(3玉) 2/6 から: 並(小と中の間)・大(並の1.5倍) 並は小と中の間ということは 1.5玉、大がその 1.5倍なら 2.25玉でしょう…

global は危険デス

id:logion:20060209#p1 において、最初に std::locale::global(std::locale("")); を実行しておけばバッチリなんて書いていましたが、テストプログラムでの実験しかしていませんでした。実際に自作アプリに組み込んで動かしてみたら、えらい副作用があること…

ところで

ALM(google:Application Lifecycle Management) って何? と思って調べてみたら Borland 用語なんですね…。全然知らなかったとです。orz ボーランド、ソフトウェアのビジネス価値を最大にする革新的なビジョンを日本で展開 (注1) ALM(Application Lifecycle M…

Borland が IDE 製品開発事業の売却を計画

Borland plans separate company for its developer products Borland to Acquire Software Quality Company, Segue Software; Announces Plan to Divest IDE Product Lines mixi の C++Builder コミュニティからの情報ですが、Borland は企業向けの ALM(App…

結論

C++Builder2006J, VisualStudio.NET2003, VisualStudio2005 では正常に変換されました。C++Builder6J の文字が途中で切れる問題は変化がないため、locale 設定方法とは別問題のようです。 id:logion:20060207#p4 で書いたように C++Builder2006 では locale …

変換結果

bcb6(C++Builder6J) の場合 WideChar オリジナル 307e 305f 660e 65e5 96fb 8a71 3057 307e 3059 3001 3068 306e 3053 3068 3067 3057 305f 3002 0000 MultiByte→WideChar clocale 307e 305f 660e 65e5 96fb 8a71 3057 307e 3059 3001 3068 306e 3053 3068 3…

locale の対応状況調査(その3)

id:logion:20060208#p4 でなんともしょんぼりな結果が出た C++ の locale ですが、C の場合と同様にグローバルに設定すると正常に動くことがわかりました。

結論

C の locale は全ての処理系で問題なく動くようです。 C++ の locale による MultiByte・WideChar の相互変換がまともに動くのはVisualStudio2005 だけですね。 ということで、負けた気がしますが C の locale を使うことにします…。orz

変換結果

bcb6(C++Builder6J) の場合 c++locale の MultiByte→WideChar 変換で途中で切れてしまっていることがわかります。 WideChar オリジナル 307e 305f 660e 65e5 96fb 8a71 3057 307e 3059 3001 3068 306e 3053 3068 3067 3057 305f 3002 0000 MultiByte→WideCha…

実験方法

以下の文字列を MultiByte と WideChar それぞれで用意し、C の locale と C++ locale を使って変換してみました。 文字列 ま た 明 日 電 話 し ま す 、 と の こ と で し た 。 MultiByte の場合 82 dc 82 bd 96 be 93 fa 93 64 98 62 82 b5 82 dc 82 b7…

MultiByte・WideChar 相互変換のコード

MultiByte → WideChar 変換の場合は const char* を変換して結果を std::wstring にセット、逆は const wchar_t* を変換して結果を std::string にセット、というインターフェースを持つ関数として、 C の locale・C++ の localeで、また参考までに Win32・C…

locale の対応状況調査(その2)

次に、char(MultiByte) と wchart_t(WideChar) の変換についても調べてみました。 というのも、C++Builder6J で std::locale を使って MultiByte から WideChar に変換すると文字列が途中で欠けてしまう、という問題があり、当時は仕方なしに Win32 API で凌…

結論

日本語(SJIS)を特定したい場合はロケール文字列として "Japanese_Japan.932" を使うのが良さそうです。端折りたい場合は "japanese" あたりが良いかと。 ただ上で試した環境は全部 Windows なので、FreeBSD Linux・OSX でどうなるかは未確認です。 それより…

C++ の場合

ロケール文字列 bcb6(C++Builder6J) bcb10(C++Builder2006J) vc71(VisualStudio.NET2003) vc8(VisualStudio2005) ja_JP Succeeded Failed: bad locale name Failed: bad locale name Failed: bad locale name ja_JP.SJIS Succeeded AccessViolation Failed: …

C の場合:

ロケール文字列 bcb6(C++Builder6J) bcb10(C++Builder2006J) vc71(VisualStudio.NET2003) vc8(VisualStudio2005) ja_JP NULL NULL NULL NULL ja_JP.SJIS NULL NULL NULL NULL ja_JP.sjis NULL NULL NULL NULL ja_JP.EUC NULL NULL NULL NULL ja_JP.eucJP NUL…

調査方法

まず locale 名にどのようなものがあるのか全然知らなかったので、google 等でそれっぽい文字列をかき集めて以下を試してみました。 C の locale 関数 ::setlocale("ロケール名") で実際に得られるロケールを表示してみる(存在しなければ NULL が返る) C++ …

locale の対応状況調査(その1)

id:logion:20041222#p1 や id:logion:20051128#p1 でも書いたようにすげー心待ちにしていていた C++Builder2006J ですが、昨年末にバージョンアップ版が届きました。年明けの Update1 も当てて移行の準備も万端なはず…なのですが、ちょっと気になる点があっ…