2008年9月28日

Delphi/C++Builder 2009に同梱のInstallAwareについて

Delphi/C++Builder 2009に同梱のInstallAwareがInstallAware Express 6 CodeGear Special Editionのままでした。これはちょっと…。IAの現行バージョンは8なんですけど。

2008/12/05追記: DEKOさんのご指摘 DEKOさんのご指摘のとおりで、DVDの \InstallAware\ia-codegear-express-special-edition.exe がInstallAware 7 CodeGear Special Edition (InstallAware Express CodeGear Special Edition. Based on InstallAware 7 Release 2 (Build babiali_r2.070408)、Version 7.9.7201.2008、英語版)になっています。なおインストーラをローカライズしたいときなどもDEKOさんのちっぷす DEKOさんのちっぷすが非常に役に立ちます。それにしてもどこかの会社で日本語にローカライズして販売してくれませんかね?

2008年9月16日

2008年9月12日

2008年9月10日

Microsoft Monthly Update 2008/09

今日はMicrosoftのセキュリティアップデートの日です。
MS08-052
MS08-053
MS08-054
MS08-055

2008年9月9日

第10回エンバカデロ・デベロッパーキャンプ(東京)終了

参加者の皆さんおつかれさまでした。関係者の皆さんはまだ明後日(大阪)があるので頑張ってくださいね。
さて、公開されてNDAから外れた重要情報を。
1.Turbo Explorer SKUについては考慮中。ただし機能は削って『言語の習得に絞った』ものにする(言語というのはこの場合C++/Object Pascalを指すと思われる)。つまり現状のTurbo Explorerとはかなり異なったものになるのでは?
2.Delphi.NETは次のRAD Studio(年内リリース?)には含まれる。その後はMicrosoft Visual Studioのプラグインとして.NET Framework 3.5の対応も含め.NETの全機能に対応していきたい。ただしRAD Studioのパーソナリティではなくなる。
それからロードマップ上Tiburonの次になるCommodoreは2009年3Q-4Qになりそうです(今までの情報よりは若干後退)。64bit対応以外にもマルチタスク/マルチスレッドサポートなどを盛り込むかどうかを検討中とのこと。

2008/09/18追記: セッション資料がダウンロードできるようになっています。

2008/09/25再追記: Nick Hodgesさんのテクニカルセッションのビデオも公開されています。
ビデオ - Delphi 2009 / C++Builder 2009最新情報

2008/10/01再々追記: Nick Hodgesさんのジェネラルセッションのビデオも公開されました。
ビデオ - CodeGearプロダクトアップデート

2011/05/04追記: dn.codegear.comのリンクをedn.embarcadero.comのものに差し替え。

2008年9月8日

2008年9月4日

標準条件シンボル

Delphiで予め定義済のシンボルを標準条件シンボル(standard conditional symbols)と呼び、以下のようなものがあります。

VER<nnn>
コンパイラバージョン
RTLVersion<nnnn>
ランタイムマイナーバージョン(仮)(Delphi 10.4.2以降)
DCC
(全ての環境で定義)
CONSOLE
コンソールアプリケーション
NATIVECODE
ネイティブコード(Delphi.net以降の.NET環境以外で定義)
MSWINDOWS
Windows(Kylix/macOS/iOS/Android/Linux以外で定義)
WIN32
Windows x86環境で定義(Delphi 6以降)
WIN64
Windows x64環境で定義(Delphi XE2以降)
MACOS
MacOS環境で定義(Delphi XE2以降)
MACOS32
MacOS 32bit環境で定義(Delphi XE2以降)
MACOS64
MacOS 64bit環境で定義(Delphi XE8以降)
OSX
OSX(MacOS)環境で定義(Delphi 11以降)
OSX64
OSX(MacOS)環境で定義(Delphi 11以降)
POSIX
MacOSを含むPOSIX環境で定義(Kykix/Delphi XE2以降)
POSIX32
MacOSを含むPOSIX 32bit環境で定義(Kykix/Delphi XE2以降)
POSIX64
MacOSを含むPOSIX 64bit環境で定義(Delphi XE2以降)
IOS
iOS(デバイス/シミュレータ)環境で定義(Delphi XE4以降)
IOS32
iOS 32bit環境で定義(Delphi XE8以降)
IOS64
iOS 64bit環境で定義(Delphi XE8以降)
LINUX
Linux環境で定義(Kylix/Delphi 10.2以降)
LINUX32
Linux 32bit環境で定義(Kylix/Delphi 10.2以降)
LINUX64
Linux 64bit環境で定義(Delphi 10.2以降)
ANDROID
Android環境で定義(Delphi XE5以降)
ANDROID32
Android 32bit環境で定義(Delphi XE8以降)
ANDROID64
Android 64bit環境で定義(Delphi 10.3.3以降)
CLR
.NET環境で定義
CPU386
i386以降のCPU
CPUX86
x86のCPU(Delphi XE2以降)
CPUX64
x64のCPU(Delphi XE2以降)
CPUXARM
ARMのCPU(Delphi XE4以降)
CPUARM32
32bit版ARMのCPU(Delphi XE8以降)
CPUARM64
64bit版ARMのCPU(Delphi XE8以降)
CPU32BITS
32bitのCPU(Delphi XE8以降)
CPU64BITS
64bitのCPU(Delphi XE8以降)
ASSEMBLER
アセンブラ構文(asm)を使用できるかどうか
UNICODE
Unicode環境で定義(Delphi 2009以降)
CONDITIONALEXPRESSIONS
条件評価($IF指令)を使用できるかどうか
ALIGN_STACK
OS Xコンパイラやその他の(Linux)コンパイラなどの厳密なスタックアライメント要求がない環境で定義(Delphi XE2以降)
PC_MAPPED_EXCEPTIONS
例外の巻き戻しにアドレスマップを使用するプラットフォーム用コンパイラで定義(Delphi XE2以降)
PIC
OS XのようにPIC(位置独立コード)が要求されるプラットフォームで定義(Delphi XE2以降)
AUTOREFCOUNT
ARC(Automatic Reference Counting)をサポートする環境で定義(Delphi XE4以降、Delphi 10.4 Sydneyですべてのコンパイラが未定義に)
EXTERNALLINKER
外部リンカを使用する環境で定義(Delphi XE4以降)
NEXTGEN
(LLVMベースの)"NEXTGEN"コンパイラで定義(Delphi XE4以降、Delphi 10.4 Sydneyですべてのコンパイラが未定義に)
ELF
実行/オブジェクトファイルがELF形式の環境で定義(Delphi 10.2以降)
UNDERSCOREIMPORTNAME
インポートされた名前が"_"(アンダースコア)付きになる環境で定義(Delphi XE4以降)
WEAKREF
弱い参照(weak reference)が有効な環境で定義(Delphi XE4以降)
WEAKINSTREF
弱い参照がインスタンスに定義される環境で定義(Delphi XE4以降、Delphi 10.4 Sydneyですべてのコンパイラが未定義に)
WEAKINTREF
弱い参照がインタフェースに定義される環境で定義(Delphi XE4以降)
FRAMEWORK_VCL
プロジェクトがVCLフレームワークを使用(Delphi 11.1以降)
FRAMEWORK_FMX
プロジェクトがFMXフレームワークを使用(Delphi 11.1以降)
WEAK_NATIVEINT
NativeInt/NativeUIntが型エイリアスの環境で定義(Delphi 12)
BCB
C++Builderで定義
WINDOWS
Win16環境で定義
ヘルプにはCPU32BITS/CPU64BITSはDelphi XE2以降との記述がありますが、実際にはDelphi XE8以降で有効です。

またVER<nnn>はそれぞれ以下のプロダクトで定義されています(VER180はDelphi/C++Builder 2006と2007の両方で定義済、VER185はDelphi/C++Builder 2007のみで定義済)。

VER40
Turbo Pascal 4.0
VER50
Turbo Pascal 5.0
VER55
Turbo Pascal 5.5
VER60
Turbo Pascal 6.0
VER10
Turbo Pascal for Windows 1.0
VER15
Turbo Pascal for Windows 1.5
VER70
Borland Pascal 7.0
VER80
Delphi 1
VER90
Delphi 2
VER93
C++Builder 1
VER100
Delphi 3
VER110
C++Builder 3
VER120
Delphi 4
VER125
C++Builder 4
VER130
Delphi 5, C++Builder 5
VER140
Delphi 6, C++Builder 6, Kylix 1, Kylix 2, Kylix 3
VER150
Delphi 7, 7.1
VER160
Delphi 8 for .NET, C#Builder
VER170
Delphi 2005, C++Builder 2005 (Ver9)
VER180
Delphi 2006, C++Builder 2006 (Ver10), Delphi 2007, C++Builder 2007 (Ver11)
VER185
Delphi 2007, C++Builder 2007 (Ver11)
VER190
Delphi 2007 for .NET (Ver11)
VER200
Delphi 2009, C++Builder 2009 (Ver12)
VER210
Delphi 2010, C++Builder 2010 (Ver14)
VER220
Delphi XE, C++Builder XE (Ver15)
VER230
Delphi XE2, C++Builder XE2 (Ver16)
VER240
Delphi XE3, C++Builder XE3 (Ver17)
VER250
Delphi XE4, C++Builder XE4 (Ver18)
VER260
Delphi XE5, C++Builder XE5, Appmethod 1.13 (Ver19)
VER265
Appmethod 1.13 (Ver19.5)
VER270
Delphi XE6, C++Builder XE6, Appmethod 1.14 (Ver20)
VER280
Delphi XE7, C++Builder XE7, Appmethod 1.15 (Ver21)
VER290
Delphi XE8, C++Builder XE8, Appmethod 1.16 (Ver22)
VER300
Delphi 10 Seattle, C++Builder 10 Seattle (Ver23)
VER310
Delphi 10.1 Berlin, C++Builder 10.1 Berlin (Ver24)
VER320
Delphi 10.2 Tokyo, C++Builder 10.2 Tokyo (Ver25)
VER330
Delphi 10.3 Rio, C++Builder 10.3 Rio (Ver26)
VER340
Delphi 10.4 Sydney, C++Builder 10.4 Sydney (Ver27)
VER350
Delphi 11 Alexandria, C++Builder 11 Alexandria (Ver28)
VER360
Delphi 12 Athens, C++Builder 12 Athens (Ver29)

RTLVersion<nnn(n)>はDelphi 10.4.2で導入されました。

RTLVersion1041
Delphi 10.4.2
RTLVersion1042
Delphi 10.4.2
RTLVersion111
Delphi 11.1
RTLVersion112
Delphi 11.2
RTLVersion113
Delphi 11.3

ねた元はDelphi Tips - 0086とかDelphi Compiler Version Directives: {$IFDEF VER180}とか多数。もうちょっとヘルプが親切ならなぁ。オンラインヘルプの条件付きコンパイル(Delphi) (en)およびコンパイラ バージョン (en)に完全な定義が掲載されました。素晴らしい。

2008/12/23追記: Borland Compiler Conditional Defines - Delphiを参考にちょこちょこっと修正。

2009/09/02追記: Delphi/C++Builder 2010のVER210を追加。

2010/10/12追記: Delphi/C++Builder XEのVER220を追加。

2011/09/02追記: Delphi/C++Builder XE2関係を追加。

2012/09/02追記: Delphi/C++Builder XE3のVER240を追加。

2013/04/20追記: Delphi/C++Builder XE4のVER250/iOS/CPUARM/AUTOREFCOUNT/EXTERNAL_LINKER/NEXTGEN/UNDERSCOREIMPORTNAME/WEAKREF/WEAKINSTREF/WEAKINTREFを追加。

2013/09/12追記: Delphi/C++Builder XE5のVER260/Androidを追加。

2014/04/15追記: Appmethod 1のVER265とDelphi/C++Builder XE6のVER270を追加。

2014/09/02追記: Delphi/C++Builder XE7のVER280を追加。

2015/04/07追記: Delphi/C++Builder XE8のVER290を追加。

2015/09/01追記: Delphi/C++Builder 10 SeattleのVER300を追加。

2015/11/16追記: Delphi/C++Builder XE8以降のCPU32BITS/CPU64BITSを追加。

2016/04/20追記: Delphi/C++Builder 10.1 BerlinのVER310を追加。

2016/08/19追記: Compiler Versionsを参考に微妙に修正。

2017/03/23追記: Delphi/C++Builder 10.2 TokyoのVER320を追加。

2018/11/22追記: いくつかの標準条件シンボルが欠けていたのを修正。

2018/11/26追記: Delphi/C++Builder 10.3 RioのVER330を追加。

2020/06/01追記: Delphi/C++Builder 10.3.3 RioのANDROID64とDelphi/C++Builder 10.4 SydneyのVER340を追加。

2021/05/05追記: Delphi/C++Builder 10.4.2以降のRTLVersion<nnnn>(RTLVersion1041、RTLVersion1042)を追加。

2021/09/10追記: Delphi/C++Builder 11 AlexandriaのVER350とOSX/OSX64を追加。

2022/03/16追記: Delphi/C++Builder 11.1 AlexandriaのRTLVersion111とFRAMEWORK_VCL、FRAMEWORK_FMXを追加。

2022/09/13追記: Delphi/C++Builder 11.2 AlexandriaのRTLVersion112を追加。

2023/03/07追記: Delphi/C++Builder 11.3 AlexandriaのRTLVersion113を追加。

2023/11/09追記: Delphi/C++Builder 12 AthensのVER360を追加。

2023/11/24追記: Delphi/C++Builder 12 AthensのWEAK_NATIVEINTを追加。