以前の Delphi コンパイラ(DCC32)は、インターフェイス パラメータがデフォルト値 nil を持つ場合、.hpp ファイル内に次のようなコードを生成しました。
void methodName(_di_IIntf param =(void *)(0x0));
C++ コンパイラは、以前は、この構文を誤って受け入れていました。
このリリースでは、Delphi コンパイラと C++ コンパイラの両方で、この場合の処理が変更されています。
Delphi コンパイラは、デフォルト値 nil を持つインターフェイス パラメータに対して、.hpp ファイル内に次のようなコードを出力するようになりました。
void methodName(_di_IIntf param = _di_IIntf());
C++ コンパイラは、Delphi インターフェイスに "void *" 型を割り当てたコードに対して、エラーを出力するようになりました。たとえば、次の行は
void methodName(_di_IIntf param =(void *)(0x0));
コンパイルに失敗し、次のエラーが出力されます。
'void *' を '_di_IIntf' に変換できません。
デフォルト値 nil を持つインターフェイス パラメータを含む Delphi コードがある場合は、DCC32 で再コンパイルしてください。ソースがない場合、.hpp ファイルを編集し、該当箇所をすべて次のように変更してください。
void methodName(_di_IIntf param =(void *)(0x0));
これを次のように変更します。
void methodName(_di_IIntf param = _di_IIntf());
C++Builder プロジェクト内で Delphi コードをコンパイルする場合、現在は、
[プロジェクト|オプション...|Delphi コンパイラ|コンパイル]
ダイアログ ボックスの [シンボル参照情報] オプションのいずれか 1 つのみ([定義のみ] または [参照情報] のいずれか)を選択できます。ただし、以下のソースレベル指令($
xx
)を使用すると、 これらのオプションの両方を選択することができます。
- 定義情報($YD) オプション: Delphi コンパイラは、各識別子が定義されている場所についての情報を記録します。変数、定数、クラスなどのほとんどの識別子に対して、コンパイラはその宣言の場所を記録します。手続き、関数、およびメソッドに対しては、コンパイラは実装の場所を記録します。これにより、コード エディタでの参照が可能になります。
- 参照情報($Y+) オプション: Delphi コンパイラは、各識別子が定義されている場所だけでなく、それらが使用されている場所についての情報も記録します。これにより、プロジェクト ブラウザの [参照] ページが使用可能になります。
これらのコンパイラ オプションは、デバッグ情報(
$D
)オプションと、ローカル デバッグ シンボル(
$L
)オプションの両方がオンの場合にのみ利用できます。
WebSnap ディレクトリの指定C++Builder を WebSnap と共に使用している場合、実行可能ファイルが HTML ファイルと同じディレクトリに書き込まれることを確認してください。実行可能ファイルがプロジェクト ディレクトリに書き込まれるようにするには、[プロジェクト|オプション...|パスとシンボル定義|最終出力] にドット(".")を入力します。
プリコンパイル済みヘッダーの場所の変更
C++ のプリコンパイル済みヘッダー ファイル(PCH)は、BDS2006 とは異なるファイル格納場所に保存されます。BDS2006 からプロジェクトをインポートした場合、本製品はプロジェクトの PCH ファイル格納場所をインポートしません。[プロジェクト|オプション...|C++ コンパイラ|プリコンパイル済みヘッダー|PCH ファイル名] で PCH ファイルを設定できます。
Delphi コンパイラから C++ ファイルを生成
.pas ファイルから .hpp ファイル(および対応する .obj)を生成する場合は、dcc32.exe で -JPHNE スイッチを指定する必要があります。または、.pas ファイルを含む .dpk ファイルで -JL スイッチを使用します。
Delphi DesignIntf および DesignEditors ツールの使用
DesignIntf および DesignEditors ツールを使用した Delphi ユニットを含む C++ パッケージを作成する場合、[プロジェクト|オプション...|Delphi コンパイラ|その他のオプション] を設定する必要があります。[コンパイル時に使用するパッケージ] コンボ ボックスに DesignIDE を追加します。
#define NO_STRICT に関する既知の問題
#define NO_STRICT をオフする必要がある 2 つの例は、「既知の問題」に説明があります。
C++ アプリケーションでの WinHelp の使用
コマンド ラインに関する注意事項
MSBuild 実行可能ファイルを使って、コマンド ラインからプロジェクトをビルドできるようになりました。
[スタート|プログラム|CodeGear RAD Studio 2009|RAD Studio コマンド プロンプト] を選択すると、MSBuild 実行可能ファイルへのパスと本製品の環境変数が自動的に設定されます。
CodeGear RAD Studio のツール、特に MSBuild を使うために、RAD Studio コマンド プロンプトによって設定される環境変数を次に示します。
BDS=c:\program files\CodeGear\RAD Studio\6.0
FrameworkDir=c:\Windows\Microsoft.NET\Framework
FrameworkVersion=v2.0.50727
コマンド ラインで MSBuild を使用するが、RAD Studio コマンド プロンプトを使用しない場合、これらの環境変数を自分で設定する必要があります。
MSBuild の使用方法の詳細については、オンライン ヘルプの [キーワード] または [目次] で MSBuild を検索してください。
先頭へ
データベースに関する注意事項
既知の問題
- 次のドライバでは Unicode が有効ではありません。
- DB2
- Sybase ASA
- Sybase ASE
- Informix
-
以下の組み合わせについては、テスト済みです。
| LibMySQL.dll(4.0.XX) |
DBXMys.dll |
MySQL 4.0.XX Server |
| LibMySQL.dll(5.0.XX) |
DBXMys.dll |
MySQL 4.0.XX Server |
| LibMySQL.dll(5.0.XX) |
DBXMys.dll |
MySQL 4.1.XX Server |
| LibMySQL.dll(5.0.XX) |
DBXMys.dll |
MySQL 5.0.XX Server |
新しい機能
DataSnap
DataSnap は、データベース アプリケーションの多層アーキテクチャです。DataSnap には、リモート データ モジュールを格納し管理する中間層アプリケーション サーバーが用意されています。DataSnap は強化され、異なる階層のコンポーネント間の非常に一般的な接続メカニズムを提供するようになりました。
新しいクラス TDSServer は、トランスポートおよびサーバー メソッド クラスの生成と存続期間を管理します。TDSServer を使用すると、独自の中間層サーバーを作成できます。新しいコンポーネント TDSServerClass は、動的メソッド呼び出しを使ってリモート クライアントから呼び出すことができる公開メソッドを備えたアプリケーション サーバーサイド クラスを指定するのに使用できます。このクラスのメソッドは、DBX クライアント プロバイダや ADO.NET プロバイダなどのリモート クライアントから呼び出すことができます。
DataSnap サーバーにいったん接続すると、アプリケーション サーバー内のメソッドをストアド プロシージャと同じように呼び出すことができます。たとえば、新しいクラス TSqlServerMethod を使用すると、コマンド テキストのテキスト クラスおよびメソッド名とそのメソッドのパラメータを指定することでサーバー メソッドを呼び出すことができます。サーバー メソッドでは、TDBXReader を使用して、クライアントとの間でデータセットをやり取りできます。
新しいスマート テーブルは、Datasnap でサポートしているさまざまなデータセットを抽象化したものであるため、クライアントとサーバーの間で透過的に受け渡すことができます。
TRemoteDataModule を拡張するアプリケーション サーバーサイド クラスを依然として作成できるため、その中に含まれているプロバイダには、クライアントサイドの新しい TDBXAppServerConnection クライアント コンポーネントからアクセスできます。TDBXAppServerConnection は、dbExpress を使って DataSnap サーバーに接続できるようにするもので、既存のアプリケーションの互換性を保ちつつ新しい DataSnap 機能を活用するために用意されています。新しいアプリケーションでは、TRemoteDataModule や TDBXAppServerConnection を DataSnap と共に使用する必要はありません。
アプリケーション サーバーをデータベースに接続する必要はまったくありません。サーバー メソッド クラスの要件は以下の 2 つだけです。
- TPersistent の下位クラスでなければならない。
- MethodInfo 指令を有効にする必要がある。
DataSnap についての詳細は、「http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912」を参照してください。
Unicode
Unicode サポートが、Oracle、Interbase、MySQL dbExpress の各ドライバに追加されています。
データベースの変更に関する注意事項
dbExpress
dbExpress ドライバ フレームワークの変更点は以下のとおりです。
- 本製品の前バージョンで追加された拡張クラスは削除され、それらの内容は基底クラスに移されました。たとえば、TDBXConnectionEx クラスは削除され、そのメソッドとプロパティは TDBXConnection クラスに移されました。
- 多くのメソッドのパラメータ型が、WideString から新しい型 UnicodeString に変更されました。
- TDBXValue と TDBXWritableValue には、データ型を強制的に変換するための GetAs... メソッドと SetAs... メソッドが追加され(GetAsDateTime など)、これらのクラスを継承するクラスで使用できるようになりました。TDBXValue と TDBXWritableValue にはまた、強制的型変換用の新しい As... プロパティ(AsBcd など)も用意されています。
- データベースでパラメータ メタデータがサポートされている場合、TDBXCommand.Prepare メソッドを実行すると、TDBXCommand パラメータ リストにコマンドのパラメータが自動的に設定されます。
Blackfish SQL ライセンスの取得
Blackfish SQL の配置ラインセンスを取得する方法が変更されました。製品に以前含まれていた .slip ファイルは使用できなくなりました。配置ライセンスは、オンラインの「http://reg.codegear.com」で生成できるようになりました。インストール、配置、およびライセンスについての詳細は、Install、Deploy、License の各ファイルを参照してください。 これらのファイルは、デフォルトで C:\Program Files\CodeGear\RAD Studio\6.0 に置かれています。
サポート対象サーバー
dbExpress
- Blackfish SQL Server 8.0
- InterBase 2009、2007、7.5.1、7.1*、7.0*、6.5*(すべて)(ドライバ dbxINT.dll、クライアント GDS32.DLL)
- Adaptive Sybase Anywhere 9、8*(Arch, Ent)(ドライバ dbxASA.dll、クライアント dbodbc9.dll)
- DB2 UDB 8.x、7.x*(Arch, Ent)(ドライバ dbxDB230.dll、クライアント db2cli.dll)
- Informix 9.x(Arch, Ent)(ドライバ dbxINF30.dll、クライアント isqlb09a.dll)
- MSSQL 2005、2000(Arch, Ent)(ドライバ dbxMSS.dll、クライアント oledb.dll)
- MySQL 4.0.24(すべて)(ドライバ dbxMYSA.dll、クライアント libmysql.dll)
メモ: Delphi 2007 の dbxMYS.dll から変更はありません。名前が変更されました。
- MySQL 5.0.27、4.1*(すべて)(ドライバ dbxMYS.dll、クライアント libmysql.dll)
- Oracle 10g、9.2.0*、9.1.0*(Arch, Ent)(ドライバ dbxora.dll、クライアント OCI.DLL)
- Sybase 12.5(Arch, Ent)(ドライバ dbxASE.dll、クライアント libct.dll & libcs.dll)
* このバージョンのデータベースでは、ドライバの動作が完全に保証されていません。
先頭へ
デバッガに関する注意事項
- コード内にデータ ブレークポイントを置こうとすると、プログラムが破損する場合があります。たとえば、VMT スロットにデータ ブレークポイントを置くと、プログラムが間違った場所にジャンプする場合があります(アドレスの "最後の" バイトが 0xcc に上書きされる)。
- System Mechanic 7 Pro をインストールすると、統合デバッガの機能が無効になります。プロセスがすぐに終了することと、イベント ログ ビューに診断メッセージが表示されることが報告されています。この製品がインストールされている場合は、サービス マネージャを使用して "iolo DMV Service" の実行を無効にすることで、デバッグ機能を復元できます。
先頭へ
マニュアルに関する注意事項
-
特定のヘルプ(MSDN オンラインなど)を選択して、検索や索引機能を使用できます。たとえば、RAD Studio に備わっているローカル ヘルプのみを検索対象に制限でき、ヘルプ ビューアでローカル ヘルプを最初に表示するかオンライン プロバイダのヘルプを最初に表示するかどうかを指定できます。
ヘルプ ビューアのヘルプ ソースを指定するには、[ツール|オプション...|ヘルプ|オンライン] を選択します。
オプション "最初にローカル、次にオンラインで実行" を選択して、ブラウザが適切な CodeGear ヘルプ ファイルを見つけることを有効にし、ローカル ヘルプの検索結果を最初に表示して、オンライン プロバイダからの結果をその後に表示するようにします。
ヘルプ ビューアの高度な設定の詳細については、CDN の記事 "Getting the Best Results with RAD Studio Online Help(RAD Studio オンライン ヘルプで最高の結果を)" (http://dn.codegear.com/article/37562)を参照してください。
- Microsoft Document Explorer 2008 (dexplore.exe)が Delphi 2009 と C++Builder 2009 のオンライン ドキュメントを表示するために必要です。Microsoft Document Explorer 2008 がインストールされていない場合は、ヘルプ システムのインストールの一部としてインストールされます。Microsoft Document Explorer 2008 のプレリリース バージョンのライセンスが表示されるという既知の問題があります。
- ヘルプ システムのアップデートは、製品のアップデートを取得する場合と同じ手順で取得できます。[スタート|プログラム|CodeGear RAD Studio 2009|アップデートの確認] を選択します。
先頭へ
国際化に関する注意事項
XP SP2 で IME(input method editor)を使用している場合、.NET Framework のバグが原因で本製品がハングアップし、しばらくした後(約 5 分)にエラー メッセージが表示される場合があります。このエラーは、数回発生すると、発生しなくなるようです。すべての言語ウィンドウが影響を受ける可能性があります。
このエラーを防ぐには、XP SP3 を適用してください。
詳細については、http://support.microsoft.com/kb/906678/en-us を参照してください。
先頭へ
VCL/RTL に関する注意事項
VCLJPG から VCLIMG: vcljpg パッケージは削除され、その内容は vclimg に移動されました。vcljpg を使ったをプロジェクトを vclimg パッケージを代わりに使って更新します。
VCL/RTL の新機能: RTL の新機能と Unicode をサポートするクラスについては、Nick Hodges の CDN の記事「http://dn.codegear.com/article/38498」を参照してください。
先頭へ
SOAP サーバーに関する注意事項
Win32/native SOAP サーバーは現在、非推奨リストで "他の検討事項:代替が必要" に分類されています。ドキュメント/リテラル サーバーが必要である場合は、Delphi for .NET (RAD Studio)を使用して SOAP サーバーを構築する必要があります。これは .NET framework でサポートされている SOAP 仕様をサポートします。
先頭へ
既知の問題
ActiveX
C++ Builder 6 で作成された ActiveX ライブラリ プロジェクトを C++ Builder 2009 で開き、実行すると、[ActiveX サーバーの登録] と [ActiveX サーバーの削除] メニューが有効になりません。これを回避するには、[実行|実行時引数...] を選択して、[ホスト アプリケーション] に "C:\windows\system32\regsvr32.exe" を、[パラメータ] に <プロジェクト名> を設定します。
IDE での基本多言語面以外の Unicode 文字のサポート
XP と以前のオペレーティング システムでは、IDE は Tahoma フォントを使用します。このフォントでは基本多言語面以外の文字の表示はサポートされていないため、サロゲート ペアを使用する文字は IDE の一部(オブジェクト インスペクタなど)では正しく表示されません。
DLL を動的にロードする場合、動的リンク RTL は使用できない
DLL を動的にロードする場合、ランタイム ライブラリと動的にリンクできません。動的にリンクした場合、プログラムが終了すると、アクセス違反が発生します。これを回避するには、[プロジェクト|オプション...] の [リンカ] ページにある [EXE と DLL オプション] セクションの [動的 RTL] チェック ボックスをオフにします。
GdiPlus ライブラリでは #define NO_STRICT をオフにすることが必要
C++ の GdiPlus ライブラリは、非 STRICT モードでは使用できません。これは、Graphics::Graphics(HDC) を Graphics::Graphics(HWND) と区別できる必要があるからです。非 STRICT モードでは、HWND と HDC はともに "void*" です。非 STRICT モードで使用すると、次のエラーが発生します。
[C++ エラー] GdiplusGraphics.h(37): E2015 'Gdiplus::Graphics::Graphics(void *)' と 'Gdiplus::Graphics::Graphics(void *,int)' の区別があいまいです。
VCL では #define NO_STRICT をオフにすることが必要
VCL は Windows の handle パラメータを C++ STRICT マングリング スキームに一致するように変換するようになりました。VCL では NO_STRICT を定義する古いアプリケーションのためにエントリポイントが残されています。ただし、NO_STRICT を定義したアプリケーションを STRICT モードに更新すること(NO_STRICT マクロの削除)をお勧めします。型安全性が強化され、VCL のネイティブ マングリングに一致するからです。
Runtime Themes と TImageList.ColorDepth
TImageList.ColorDepth プロパティに cd32Bit を設定し、ImageList に透明画像が含まれる場合は、画像がコントロール上で描画されるとき正しくブレンドするように Runtime Themes を有効にする必要があります。
先頭へ
Copyright 2008 Embarcadero Technologies. All rights reserved.