Giraffe+ 0.5.36.524
前リリースからの変化
- さらにメモリを開放されやすくした
- リストボックスのタブ分離表示が重なることがあったのを修正
- 互換性のためString.shell_executeの始めの3つの引数は内部で文字列にキャストすることにした
- 旧関数のmsgにXMessageBoxを使うことにした
- Windows_TCHAR等をChar等からWchar等にした
- C言語と同じように数値リテラルに後置の型指定を可能にした
- settings/keys/ExecuteSeriallyがITEMIDLISTを扱えてなかったのを修正
- カレントディレクトリを再初期化時に元に戻すようにした
さらにメモリを開放されやすくした
gs::SLOTとStructで生成する構造体にもgc_allocatorを使うようにしました。
リストボックスのタブ分離表示が重なることがあったのを修正
最後の1文字をカウントし忘れてました。
互換性のためString.shell_executeの始めの3つの引数は内部で文字列にキャストすることにした
型安全と利便性を比べ、前者を取ったものの、後から生じた互換性が重要になり、路線変更、といったところです。
旧関数のmsgにXMessageBoxを使うことにした
簡単にタイマー付きメッセージボックスを作りたくて探してみると、CodeProjectのXMessageBoxがWindowsのAPIを包括する形式だったので置き換えてみました。
Script/XMessageBox.giraffeに必要な定数と構造体を定義してますので、includeして使います。
Windows_TCHAR等をChar等からWchar等にした
DLLの呼び出しは、互換性のため、ASCIIを優先しています。User32.MessageBoxはUser32.MessageBoxAと解釈されます。それに合わせると、Windows_TCHARはWindows_CHARであるべきです。
しかし、Windows_*は旧コードに現れるものではありませんから、互換性を求める意義は小さく、MFC_*やそれから派生するGiraffe.MainWnd等との不一致がもたらす不都合のほうが大きいと判断しました。
XMessageBoxの最後の引数の構造体のTCHARをどう扱うか考えた結果です。
C言語と同じように数値リテラルに後置の型指定を可能にした
定数の定義の際、C言語のヘッダを簡単に正規表現で置換するだけではダメというのが気に入らなくてやりました。
VC++と同じように、LはINT32、LLまたはI64はINT64、Uがunsignedです。
settings/keys/ExecuteSeriallyがITEMIDLISTを扱えてなかったのを修正
扱えるようにわざわざ小細工しておきながら出来てませんでした。完全に未テストだったようです。