トップ

PC関係のメモ


chrome16の文字化け

特にFacebookでの文字化けが気になるChorme(およびChromium)の文字化けがChrome17に向けて修正が入るらしい。

https://groups.google.com/a/googleproductforums.com/forum/#!topic/chrome-ja/xOEErwc4f2c

意外にもエンコーディングの問題ではなく、フォントレンダリングの問題のようで、スケールを変更すれば文字化けにならない。

が、問題が特定されたらしく次バージョンでは修正されるらしい。

最終更新時刻: 2012年02月01日

dddav 0.9 リリース

http://www.mylab.jp/program/dddav/

1件の不具合修正といくつかの改善を含むリリース。

最終更新時刻: 2012年01月25日

dddav 0.8 リリース

今回は不具合修正と仕様変更のリリース。

http://www.mylab.jp/program/dddav/

日本語フォルダ名に関する不具合の修正。

  • ホスト設定の「リモートの初期フォルダ」に日本語フォルダ名が含まれる場合にパスが文字化けする
  • ホスト設定の「現在のフォルダ」押下時に日本語フォルダ名が含まれた場合に文字化けする

加えてバージョンチェックのHTTPアクセス時にインターネットオプションのプロキシ設定を参照するように仕様変更。

最終更新時刻: 2012年01月18日

OLE Drag&Dropで画面をロックさせない実装

OLE ドラッグ&ドロップ(以下D&D)の実装を見直し中。

VC++(MFC)で何も考えずにD&Dを実装すると、D&D中はアプリケーションがロックされる。

普通のアプリケーションならロックされる時間は短いので気にならない。

但し、dddavのようなドロップ後に時間のかかる処理(ファイル転送)をしている場合にはそれが気になるのでロックされないように考える必要がある。

具体的には次の点をdddavでは実装していた。

  • 時間のかかる処理(ファイル転送等)はスレッド処理する。
  • ドロップ後は自前でメッセージループを回す。

但し、これだけだとD&Dを開始したコントロール(リストビュー)がロックされる。

これはWM_NOTIFYメッセージで受け取ったドラッグ開始の処理中の中でドロップ後の処理を行うため、コントロールに次のメッセージが送られてこないせいであるためと考えられる。

よって、この対策として次の点も現在実装中である。

  • ドラッグの開始と同時に非表示のダミーウインドウにメッセージを投げ、そちらでドラッグを開始させる。

この他に、オートメーションのスレッドを立ててそちらでドラッグを開始する試みもしてみたが失敗した。

MFCのコード中で、メインスレッドかどうかのチェック判定をしているため別スレッドではドラッグが開始できないためである。

具体的にはmfc\oledrop1.cppのCOleDropSource::OnBeginDrag()の中に書いてある下記コードで判定していた。

// some applications steal capture away at random times
if (CWnd::GetCapture() != pWnd)
最終更新時刻: 2012年01月11日

ワイド文字列からマルチバイト文字列への変換

MFC/ATLであればCStringW/CStringAを使うのがお手軽。コンストラクタで変換してくれる。

Win32APIならMultiByteToWideChar/WideCharToMultiByteを使うんだけど面倒。

標準Cライブラリならmbtowc/wcstombs。

最終更新時刻: 2012年01月06日

dddav 0.7をリリース

起動時のソフトの更新チェックと、転送しながらのリモートフォルダ移動に対応。

http://www.mylab.jp/program/dddav/

起動時の最新バージョン確認についてはプロキシを見ていないので通知されない可能性あり。

最終更新時刻: 2012年01月06日

気になる格言、名言、慣用句

メモ。

推測するな、計測せよ

by 書籍 24時間365日 サーバ/インフラを支える技術

KISS(Keep it simple, stupid)の原則

by Kelly Johnson

テストコードにはWhat, ソースコードにはHow, そして,ドキュメントにはWhyを書くんだよ!

by 角谷信太郎氏

顧客は1/4インチのドリルが欲しいわけではない。 1/4インチの穴が欲しいのだ

by Theodore Levitt

ポケット1つの原則

by 野口 悠紀雄氏

やってみせ, 言ってきかせて, させてみせ, ほめてやらねば, 人は動かじ。

by 山本五十六

学ばない者は人のせいにする。 学びつつある者は自分のせいにする。 学ぶということを知っている者は誰のせいにもしない。

by キング・カズ

自分の願望は、あらゆる犠牲を払い、 自分の力で実現させるものだ。 他人から与えられるものではない。

by 碇ゲンドウ - エヴァンゲリオンより

陽子自身が人を信じることと、 人が陽子を裏切ることはなんの関係もないはずだ。 陽子自身が優しいことと他者が陽子に優しいことは、 なんの関係もないはずなのに。

by 小野不由美氏 - 十二国記より

最終更新時刻: 2012年01月31日

dddav 0.6 をリリース

2ペイン間のドラッグ&ドロップに対応。

他、2件の不具合対策。

http://www.mylab.jp/program/dddav/

最終更新時刻: 2011年12月21日

OLE D&Dではまる

VC++で作ったプログラムでOLEドラッグ&ドロップした後に自動整列されてしまう現象に悩まされていたが原因がわかった。

正規化されていないパスを渡すとエクスプローラに遅延レンダリングでドロップした後になぜかドロップしたファイルのアイコンが自動整列されてしまう。

よって、GetFullPathNameでパスを正規化することで解決した。

最終更新時刻: 2011年12月19日

dddav 0.5をリリース

リモートファイルの複数削除に対応。

http://www.mylab.jp/program/dddav/

今さら感満載である。

最終更新時刻: 2011年12月19日