2010年1月28日

RAD Studio/C++Builder 2010 Hotfix 1

RAD Studio/C++Builder 2010のHotfix 1がリリースされています。QC79954のCコマンドラインプリプロセッサの不具合を修正するものです。

RAD Studio 2010 (C++Builder 2010) 用 Hotfix1
27567 Hotfix 1 for RAD Studio 2010 (C++Builder 2010)

2010/02/02追記: EDNの日本語の記事が出たのでリンクを差し替えました。

2010年1月27日

Fulcrum

Allen BauerさんThe Oracle at Delphi » Requiem for the {$STRINGCHECKS xx} directive…によれば、従来"Project X"と呼ばれていた(現在開発中のMac/Linuxクロス対応)次期RAD Studioのコードネームは"Fulcrum"だそうです(さっそく"Fulcrumだって?Mig-29かよ"というツッコミが入っていますが)。それにしてもCommodoreはいずこへ…。
ちなみに本題である$STRINGCHECKSコンパイラディレクティブ(日本語ページはない)というのは、Delphi 2009/2010でUnicodeStringがデフォルトになった一方でC++Builderでは(Stringではなく)明示的にAnsiStringが使用されてきたため、この間を取り持つ変換処理を挿入するかどうかを指定するためもの(プロジェクトオプションのコンパイラオプションでデフォルトを指定可能)。Fulcrumではこれが廃止される(無視されるようになる)、というお話みたいです。

2010年1月22日

WindowsのサービスからGUIを持つプロセスを起動

Windows Vista/7ではセッション0の分離が行われたため、単純にサービスからGUIプロセスを起動できなくなりました。そこで
  1. Win32APIのWtsGetActiveConsoleSessionID関数で現在ログオンしているユーザのセッショントークンを取得。
  2. サービス(SYSTEMアカウント上で動作している)のプロセスのユーザトークンを取得。
  3. ユーザトークンを複製。
  4. ログオンユーザのセッションを複製したトークンに設定。
  5. 複製したトークンを使用してWin32APIのCreateProcessAsUser(ja)関数でプロセスを起動。
という手順を踏み、サービスからGUIを持つプロセスを起動する方法を説明した記事。興味深い。とりあえずメモ。

From Zero To One » Blog Archive » How to start a GUI process from service, under Windows Vista/7

Microsoft OOB Update 2010/01

Microsoftの定例外のセキュリティアップデートがリリースされています。
MS10-002

2010年1月21日

RAD Studio/Delphi/C++Builder 2010 Update 4/5適用後のTTimerの振る舞いについて

Team Japanの高橋さんの

Team Japan » TTimerコンポーネント

によれば、TTimerのSetEnabled(True)の実装がRAD Studio/Delphi/C++Builder 2010 Update 4/5適用で変更され、これに伴なってメインスレッド以外のスレッドからTTimerをスタートしようとするとうまくいかないという報告があるようです。

QC81256: Changing TTimer.Enabled from thread does not work anymore since Update 4 for Delphi 2010
QC80376: RAD Studio 2010 IdTCPServer1Execute Error (After latest updates)

2010年1月19日

RAD Studio/Delphi/C++Builder 2009 Hotfix 3

RAD Studio/Delphi/C++Builder 2009のHotfix 3がリリースされています。IntraWebでUTF-8のWebRequestの内容を解析するTUTF8ContentParserの中国語(繁字体)マルチバイト文字の処理の問題を解決するようです(高橋さんによれば従来サポートでのみ配布していたものが正式公開になったようです)。IntraWebを10.0.21に更新した上でUTF8ContentParser.pasをプロジェクトフォルダに配置してリンク対象にし、かつ実行時パッケージを使用しないようにする、という変則的なものです。

Delphi/C++Builder/RAD Studio 2009用 Hotfix 3
27563 Hotfix 3 for Delphi 2009 and C++Builder 2009
Team Japan » Delphi/C++Builder 2009向けHotfix 3 for IntraWeb 10

なおこの問題は最新のRAD Studio/Delphi/C++Builder 2010では発生しない(The problem does not occur in the latest 2010 version.)とのことです。

2010/01/20追記: IntraWeb 10.0.21についてはTeam Japanのこちらの記事も参考になります。

Team Japan » IntraWeb Ver10.0.21 がリリースされました

2010/01/25追記: EDNの日本語の記事が出たのでリンクを差し替えました。

2010年1月13日

Microsoft Monthly Update 2010/01

今日はMicrosoftのセキュリティアップデートの日です。
MS10-001

2010年1月7日

2010/01開催のウェブセミナー

2010/01/14 18:00-19:00(JST) 1/14 - Webセミナー「詳細!DataSnap」
2010/01/21 17:00-18:00(JST) 1/21 - Webセミナー「エンバカデロ・テクノロジーズによるツール・クラウド All-Access」Replay download
2010/01/27 18:00-19:00(JST) 1/27 - Webセミナー「DB Optimizerによるデータベース パフォーマンスチューニングの概要と評価方法」

時間があれば…。

2010/01/14追記: 「詳細!DataSnap」は気がついたら終わっていた。だめじゃん…。

2010/01/26追記: うぅむ、時間がない…。

2010/02/25追記: 2010/01/21分のリプレイのリンクを追加しました。