Notes de mise à jour de Delphi® 2007 pour Win32® et C++Builder®

By: Masahiro Arai

Abstract: Ce fichier contient des informations complémentaires importantes qui peuvent ne pas apparaître dans la documentation principale du produit. CodeGear vous recommande de lire ce fichier dans son intégralité.

    Notes de mise à jour de Delphi® 2007 pour Win32® et C++Builder®

Ce fichier contient des informations complémentaires importantes qui peuvent ne pas apparaître dans la documentation principale du produit. CodeGear vous recommande de lire ce fichier dans son intégralité.

Ce document fait référence à "le produit" quand les informations s'appliquent à la fois à Delphi 2007 pour Win32 et C++Builder 2007.

Pour des informations sur l'installation, le déploiement et la licence, consultez les fichiers Install, Deploy et License situés, par défaut, dans C:\Program Files\CodeGear\RAD Studio\5.0.

Avant d'installer le produit, vous devez consulter les problèmes d'installation importants (y compris les procédures de désinstallation et de mise à niveau) à l'adresse : http://dn.codegear.com/fr/article/36579 )

    Sommaire

    Installation, désinstallation et mise à niveau de votre produit

  • Avant l'installation, la désinstallation ou la mise à niveau du produit, lisez les fichiers INSTALL et LICENSE pour obtenir des informations détaillées sur les problèmes d'installation et de licence. Ces deux fichiers sont situés par défaut à l'emplacement suivant :

    C:\Program Files\CodeGear\RAD Studio\5.0\install.htm C:\Program Files\CodeGear\RAD Studio\5.0\license.rtf

    Par exemple, le fichier install.htm donne l'espace libre nécessaire pour l'installation de C++Builder.

  • L'installation des produits dans un ordre incorrect peut générer des problèmes et doit être évité. Par exemple :

    • N'installez pas Borland Developer Studio 2006 après C++Builder 2007. Si vous tentez cette combinaison, vous ne pourrez pas démarrer BDS 2006. L'erreur suivante survient à la fin de l'enregistrement :

      Exception EPackageRegistrationException dans le module coreide100.bpl en 000DB245. Procédure d'enregistrement, Cppproject.IDERegister dans le package C:\Program Files\Borland\BDS\4.0\Bin\bcbide100.bpl a généré la classe d'exception EOleSysError : erreur OLE 80131040, ClassID : {F8FEDD39-E3CE-4B8D-A657-9CA24686881F}

      Dans ce cas, l'assemblage est enregistré de façon incorrecte dans l'installation de BDS2006. Si .NET 2.0 et .NET 1.1 coexistent sur le système, celui-ci ne peut pas charger borland.studio.toolsets.dll. La solution consiste à forcer le chargeur d'assemblages à utiliser .NET 1.1 pour cet assemblage. Pour de plus amples informations, voir :

      http://qc.codegear.com/wc/qcmain.aspx?d=28728

      http://qc.borland.com/wc/qcmain.aspx?d=22108

      http://support.codegear.com/article/36047

    • N'installez pas Delphi 2007 pour Win32 à partir du DVD de la release d'origine (avant Mise à jour 1) après l'installation de C++Builder 2007. Dans ce cas, aucun des produits n'est installé. A la place, sélectionnez Démarrer | Tous les programmes | RAD Studio | Modifier, Réparer, Désinstaller ; sélectionnez Mettre à jour, entrez votre numéro de série Delphi et suivez les étapes de l'installateur pour installer la Mise à jour 1 de Delphi 2007 pour Win32.

    • Ne désinstallez pas Delphi 2007 pour Win32 avant d'installer C++Builder 2007 et la Mise à jour 1 de Delphi 2007 pour Win32. Dans ce cas, seul Delphi est disponible et C++Builder ne l'est pas. Comme solution à cette situation, supprimez toutes les clés de registre dans HKCU.
  • L'installateur ne vous avertit pas quand l'espace disponible est insuffisant pour installer le produit. Environ 2 Go d'espace disque est requis sur le lecteur C: pour installer C++Builder (même lors de l'installation sur un autre lecteur). Si l'espace est insuffisant, l'installateur peut se bloquer.

  • Après la désinstallation de Delphi 2007, certains paramètres / fichiers système sont retirés et cela empêche toute désinstallation ou réparation de .NET 2.0 ultérieure tant que vous n'avez pas redémarré votre ordinateur.

  • Un seul jeu de contrôles Microsoft® Office peut être enregistré et disponible dans l'EDI à un moment donné. Les packages disponibles sont OfficeXP pour Delphi Win32, OfficeXP pour C++Builder, Office2K pour Delphi Win32 et Office2K pour C++Builder. Pour enregistrer ces packages avec l'EDI, sélectionnez Composants>Installer des packages.

Début

    Notes de portée générale

  • Les démos des deux produits sont installés dans des répertoires, selon la façon dont vous installez le produit et si vous utilisez Windows Vista :
    • Si vous choisissez Tous les utilisateurs durant l'installation, les démos sont installées dans C:\Documents and Settings\All Users\Documents partagés\RAD Studio\5.0\Demos.
    • Si vous choisissez Seulement moi durant l'installation, les démos sont installées dans C:\Documents and Settings\Mes documents\RAD Studio\5.0\Demos.
    • Sur Windows Vista, si vous choisissez Tous les utilisateurs durant l'installation, les démos sont installées dans C:\Users\Public\Documents\RAD Studio\5.0\Demos.
    • Sur Windows Vista, si vous choisissez Seulement moi durant l'installation, les démos sont installées dans C:Users\nom_utilisateur\Documents\RAD Studio\5.0\Demos.
  • Indy10 est intégré au produit. En revanche, vous pouvez installer la version antérieure, Indy9, à partir de C:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\Indy9.
  • Afin de construire des applications WebAppDebugger avec des packages, le package Indy9 doit se trouver avant les packages Indy10 dans la liste des packages d'exécution.

    Sélectionnez Composants>Installer des packages.

    Ajoutez "indy;" au début de la liste des packages d'exécution, comme suit :

    indy;vcl;rtl;bcbie;vclx;vclactnband;xmlrtl;bcbsmp;dbrtl;vcldb;bdertl;vcldbx;dsnap;dsnapcon;teeUI;tee;teedb;vclib;ibxpress;adortl; dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;inet;IntrawebDB_90_100;Intraweb_90_100;VclSmp;vclie;websnap;webdsnap;inetdbbde;inetdbxpress;soaprtl

    Cela s'applique aux deux produits.

  • Pour déboguer les applications web, démarrez en exécutant serverinfo.exe, qui s'enregistre lui-même en mode silencieux. Cette étape est nécessaire pour utiliser le débogueur d'applications web (WebAppDbg.exe, situé dans le dossier \bin de votre répertoire d'installation).
  • Pour de plus amples informations sur IntraWeb, y compris l'aide de la VCL pour les composants Web, voir http://www.atozed.com/intraweb/docs/.
  • Il est possible que .NET Framework et .NET SDK apparaissent dans différentes langues, comme l'anglais et le japonais. .NET Framework installe toutes les langues éventuelles, puis détermine la langue à utiliser selon les paramètres régionaux système. En revanche, .NET SDK n'installe que la langue sélectionnée durant l'installation.
  • Pour enregistrer un serveur COM, vous devez exécuter un projet (la première fois seulement) avec le paramètre d'exécution /regserver. Suivez ces étapes :
    1. Créez un projet.
    2. Enregistrez le projet.
    3. Définissez Exécuter | Paramètres sur /regserver.
    4. Exécutez votre projet. L'application s'enregistre et se ferme.
    5. Effacez le paramètre /regserver sur la page Exécuter | Paramètres.
  • Si vous êtes fournisseur de composants VCL et que votre installateur de composants met à jour des chemins dans le registre afin d'inclure les chemins de vos composants, votre installateur doit mettre à jour une clé de registre supplémentaire dans HKEY_LOCAL_MACHINE sous :

    Software\Borland\BDS\5.0\Globals

    Ajoutez la valeur chaîne ForceEnvOptionsUpdate ou mettez-la à jour si elle existe déjà. Affectez-lui la valeur "1". Quand cette clé de registre a la valeur "1", elle met à jour lors de la prochaine exécution de l'EDI le fichier EnvOptions.proj sur disque afin d'inclure les chemins ajoutés par votre installateur. Le fichier EnvOptions.proj est le mécanisme par lequel le nouveau moteur de construction MSBuild de l'EDI est capable d'inclure les chemins listés sur la page Bibliothèque - Win32 du dialogue Outils>Options de l'EDI.

    Si votre installateur met à jour une des clés de registre suivantes, il doit également ajouter ou mettre à jour la clé Globals\ForceEnvOptionsUpdate :

    • Software\Borland\BDS\5.0\Library\Browsing Path
    • Software\Borland\BDS\5.0\Library\Debug DCU Path
    • Software\Borland\BDS\5.0\Library\Namespace Search Path
    • Software\Borland\BDS\5.0\Library\Package DCP Output
    • Software\Borland\BDS\5.0\Library\Package DPL Output
    • Software\Borland\BDS\5.0\Library\Search Path

Début

    Problèmes connus

    Impossible d'utiliser la RTL de liaison dynamique en cas de chargement dynamique d'une DLL

Si vous chargez dynamiquement une DLL, vous ne pouvez pas effectuer de liaison dynamique avec la bibliothèque d'exécution. Sinon, une violation d'accès survient quand le programme se termine. La solution consiste à ne pas cocher RTL dynamique dans la section Liaison des options de projet sur la page Lieur\Liaison.

    Désactivation de NO_STRICT #define avec la bibliothèque GdiPlus

La bibliothèque C++ GdiPlus ne peut pas être utilisée en mode non STRICT, puisqu'elle nécessite que Graphics::Graphics(HDC) se distingue de Graphics::Graphics(HWND). En mode non STRICT, HWND et HDC sont tous deux "void*". Sinon, vous obtenez l'erreur :
[Erreur C++] GdiplusGraphics.h(37): E2015 Ambiguïté entre 'Gdiplus::Graphics::Graphics(void *)' et 'Gdiplus::Graphics::Graphics(void *,int)'

    ActiveX

Les éléments de menu d'enregistrement et de désenregistrement ne sont pas activés si vous ouvrez et exécutez un projet de bibliothèque ActiveX dans C++ Builder 2007 qui a été créé avec C++ Builder 6. La solution consiste à sélectionner Exécuter>Paramètres et à définir l'application hôte sur "C:\windows\system32\regsvr32.exe" et Paramètres sur <NomProjet>.

Début

    Notes à propos du compilateur C++Builder

    Incompatibilité binaire avec la version précédente du compilateur C++

Les bibliothèques d'exécution C++ ont été améliorées et modifiées afin d'être compatible Dinkumware 5.01. A cause de ces changements, les objets binaires générés par le compilateur dans C++Builder 2007 peuvent être différents dans certains cas des versions préalablement compilées. Les incompatibilités sont principalement restreintes aux bibliothèques standard C++. Il n'y a eu aucun changement dans l'interface binaire de l'application (ABI) C++ de base.

    Paramètre d'interface Delphi avec la valeur par défaut nil géré différemment ; Echec de compilation lors de l'affectation du type void * à l'interface Delphi

Le compilateur Delphi (DCC32) générait le code suivant dans le fichier .hpp quand un paramètre d'interface avait la valeur par défaut nil:

  void methodName(_di_IIntf param = (void *)(0x0));

Le compilateur C++ acceptait auparavant cette syntaxe incorrecte.

Dans cette release, les compilateurs Delphi et C++ gèrent tous deux ce cas différemment.

Le compilateur Delphi émet maintenant le code suivant dans le fichier .hpp pour un paramètre d'interface avec la valeur par défaut nil :

  void methodName(_di_IIntf param = _di_IIntf());

Le compilateur C++ génère maintenant une erreur pour le code qui affecte le type "void *" à une interface Delphi. Par exemple, la ligne

  void methodName(_di_IIntf param = (void *)(0x0));

échoue maintenant lors de la compilation, en émettant l'erreur :

  Impossible de convertir 'void *' en '_di_IIntf'

Si votre code Delphi contient un paramètre d'interface avec la valeur par défaut nil, recompilez-le avec DCC32. Si vous ne disposez pas du source, éditez le fichier .hpp et modifiez toutes les occurrences de

  void methodName(_di_IIntf param = (void *)(0x0));

en :

  void methodName(_di_IIntf param = _di_IIntf());

    Sélection des deux options Infos de référence de symbole pour le code Delphi

Si vous compilez du code Delphi dans votre projet C++Builder, vous ne pouvez sélectionner actuellement qu'une des options Infos de référence de symbole (Informations de référence ou Définitions uniquement) sur la boîte de dialogue Projet>Options>Compilateur Delphi>Compilation . En revanche, vous pouvez sélectionner les deux options si vous utilisez des directives de niveau source ($ xx ) comme suit :
  • Option Informations de définition ($YD) : le compilateur Delphi enregistre les informations sur l'emplacement où chaque identificateur est défini. Pour la plupart des identificateurs — variables, constantes, classes, etc. — le compilateur enregistre l'emplacement de la déclaration. Pour les procédures, fonctions et méthodes, il enregistre l'emplacement de l'implémentation. Cela active l'examen de l'éditeur de code.
  • Option Informations de référence ($Y+) : le compilateur Delphi enregistre les informations sur l'emplacement où chaque identificateur est utilisé, ainsi que l'emplacement où il est défini. Cela active la page Références du navigateur de projets.
Ces options du compilateur ne sont disponibles que si les options Informations de débogage ( $D ) et Symboles de débogage locaux ( $L ) sont activées.

    Spécification des répertoires WebSnap

Si vous utilisez C++Builder avec WebSnap, assurez-vous que les exécutables sont écrits dans le même répertoire que les fichiers HTML. Sur Projet>Options>Chemins et définitions>Sortie finale , entrez un point (".") afin que l'exécutable soit écrit dans le répertoire du projet.

    Changement de l'emplacement pour les en-têtes précompilés

Les fichiers en-tête précompilés C++ (PCH) sont placés dans un emplacement de fichier différent de BDS2006. Si vous importez un projet à partir de BDS2006, l'emplacement du fichier PCH du projet n'est pas importé. Vous pouvez définir le fichier PCH dans Projet>Options>Compilateur C++>En-têtes précompilés>Fichier PCH .

    Génération de fichiers C++ depuis le compilateur Delphi

Si vous voulez générer des fichiers .hpp (et le fichier .obj correspondant) à partir d'un fichier .pas, vous devez utiliser dcc32.exe avec le commutateur -JPHNE. Vous pouvez également utiliser -JL sur le fichier .dpk contenant le fichier .pas.

    Compilateur C++ plus strict

Le compilateur C++ livré avec C++Builder 2007 est plus strict que les versions précédentes. Le code qui ne générait pas d'erreurs dans les versions précédentes de C++Builder peut provoquer des erreurs de compilation avec C++Builder 2007. Cette section répertorie certaines zones où le compilateur est plus strict. Chaque cas est illustré par un exemple présentant le problème et montrant comment mettre à jour le code afin d'obtenir une compilation correcte avec C++Builder 2007. Notez qu'il existe souvent plusieurs façons de mettre à jour le code incorrect. La méthode adéquate dépend de l'objectif du code d'origine.

    Transtypage et références

Les versions précédentes des compilateurs Borland C++ autorisaient le transtypage quand le type d'un argument ne correspondait pas au type attendu pour un paramètre de référence. Cela est illustré par l'exemple suivant :

int takesLongRef(long& l);
int takesUnsignedPtr(unsigned long* psize) {
  return takesLongRef((long)*psize);
}

Avec C++Builder2007, le code ci-dessus génère les erreurs suivantes :

  Erreur E2357 test.cpp 3: Référence initialisée avec 'long', nécessite lvalue de type 'long' dans la fonction takesUnsignedPtr(unsigned long *)
  Erreur E2342 test.cpp 3: Non concordance de type dans le paramètre 'l' ('long &' voulu, 'long' obtenu) dans la fonction takesUnsignedPtr(unsigned long *)

Pour y remédier, vous pouvez transtyper psize avant le déréférencement, comme dans :

int takesLongRef(long& l);
int takesUnsignedPtr(unsigned long* psize) {
  return takesLongRef(*reinterpret_cast<long*>(psize));
}

Avertissement : Si vous activez le commutateur -Vb (compatibilité descendante), le code d'origine est compilé. En revanche, le compilateur passe un temporaire, pas *psize, en takesLongRef, ce qui donne un résultat qui n'est probablement pas celui attendu.

    Temporaires et références

Les versions précédentes des compilateurs C++ autorisaient l'usage des temporaires quand une référence était attendue. Par exemple :

#include <vcl.h>
class TTest {
   WideString FData ;
public:
   __property WideString Data = {read = FData };
};

void Func(WideString& wref);

void test() {
   TTest t;
   Func(t.Data);
}

Avec C++Builder 2007, le code ci-dessus génère deux erreurs :

  Erreur E2357 test.cpp 14: Référence initialisée avec 'const WideString', nécessite lvalue de type 'WideString' dans la fonction test()
  Erreur E2342 test.cpp 14: Non concordance de type dans le paramètre 'wref' ('WideString &' voulu, 'WideString' obtenu) dans la fonction test()

Vous pouvez corriger cela en changeant la référence en une référence const, comme dans :

void Func(const WideString& wref);

    Dialogue Erreur et conciliation

Le problème des temporaires et références est rencontré dans le code généré par les versions précédentes de l'expert Dialogue Erreur et conciliation. Pour remédier à cela, recherchez la méthode VarToAnsiStr

  AnsiString VarToAnsiStr (Variant &V, TFieldType DataType)

et modifiez-la afin qu'elle prenne un const Variant&, comme dans :

  AnsiString VarToAnsiStr (const Variant &V, TFieldType DataType)

    Ambiguïté

L'une des zones où le compilateur C++Builder 2007 diffère le plus de la version précédente est la détection des ambiguïtés. Plusieurs constructions qui étaient auparavant autorisées peuvent maintenant être signalées comme ambiguës, ce qui nécessite la modification du code afin de clarifier son objectif. Les sections suivantes répertorient quelques cas maintenant signalés comme ambigus.

    Conversion via des opérateurs définis par l'utilisateur

Le nouveau compilateur C++Builder 2007 signale souvent des ambiguïtés pour les conversions impliquant des opérateurs définis par l'utilisateur. Voici un exemple :

class AnsiString
{
public:
  bool operator ==(const AnsiString& other);
  AnsiString(const wchar_t* src);
};

class Variant
{
public:
  operator AnsiString() const;
  operator wchar_t*() const;
  bool operator ==(const AnsiString& rhs) const
  { return static_cast<AnsiString>(*this) == rhs;}
};

Les utilisateurs de C++Builder peuvent noter que l'exemple ci-dessus est une version issue des classes AnsiString et Variant de la VCL. Les versions précédentes du compilateur invoquaient le 'Variant' 'operator AnsiString() const' pour 'static_cast<AnsiString>(*this)', tandis que C++Builder 2007 utilise 'conversion via constructor'. Puisque le Variant peut être converti en plusieurs types pour lesquels il y a des constructeurs AnsiString, le compilateur génère une erreur d'ambiguïté.

Pour corriger cette erreur, vous devez éliminer le transtypage, comme dans

bool operator ==(const AnsiString& rhs) const
{ return (*this) == rhs;}

Vous pouvez également être explicite sur l'opérateur :

bool operator ==(const AnsiString& rhs) const
{ return this->operator AnsiString() == rhs; }

    Variant/OleVariant/AnsiString/WideString/TDateTime

Le problème décrit ci-dessus avec un opérateur de conversion défini par l'utilisateur contre une conversion via un constructeur peut être rencontré dans plusieurs constructions impliquant les classes VCL Variant, OleVariant, AnsiString, WideString, TDateTime, Currency, et ainsi de suite. Le tableau suivant répertorie les constructions générant maintenant des messages d'erreur et la syntaxe mise à jour.

Construction précédente Construction mise à jour Notes
AnsiString test(OleVariant v) {
  AnsiString ret = (AnsiString) v;
  return ret;
}
AnsiString test(OleVariant v) {
  AnsiString ret = /*(AnsiString)*/ v;
  return ret;
}
Ne transtypez pas RHS lors de l'invocation d'un opérateur de conversion dans une affectation.
WideString test(OleVariant v) {
  WideString w(v);
  return w;
}
WideString test(OleVariant v) {
  WideString w = v;
  return w;
}
Utilisez l'initialisation de copie à la place du constructeur plus direct.

    Ambiguïté std::abs()

La fonction abs standard peut également générer un message ambigu lorsqu'elle est invoquée avec un paramètre qui ne correspond pas exactement aux types attendus par les diverses versions surchargées de abs. Cela est illustré par l'exemple suivant :

#include <limits>
bool test(long l) {
  return std::abs(l) > 0;
}

Le code ci-dessus génère une erreur de compilation :

  Erreur E2015 test.cpp 5: Ambiguïté entre 'std::abs(int) à C:\dev\tp\sc\include\math.h:208' et 'std::abs(long double) à C:\dev\tp\sc\include\math.h:275' dans la fonction test(long)
  Avertissement W8057 test.cpp 6: Paramètre 'l' jamais utilisé dans la fonction test(long)

Pour corriger cela, transtypez vers le type de la surcharge que vous voulez invoquer. Par exemple,

#include <limits>
bool test(long l) {
  return std::abs(static_cast<int>(l)) > 0;
}

Début

    Notes Windows VistaTM

  • Dans Windows Vista, vous devez exécuter l'installateur en étant connecté en tant qu'utilisateur avec des privilèges administratifs, car les modifications apportées au répertoire Program Files nécessitent une sécurité élevée.
  • Le client d'enregistrement échoue de temps en temps sur Windows Vista. Pour résoudre ce problème, sélectionnez Autoriser ce programme quand le Firewall Windows Live OneCare apparaît, puis quittez et redémarrez l'enregistrement. Ne sélectionnez pas Bloquer ce programme, car cela empêche l'enregistrement par la suite.
  • Windows Vista ne prend pas en charge l'ancien afficheur d'aide WinHelp (WinHelp.exe). Si vous souhaitez utiliser les fichiers .HLP, consultez le site web Microsoft (http://www.microsoft.com/downloads/details.aspx?familyid=6ebcfad9-d3f5-4365-8070-334cd175d4bb).
  • Si vous utilisez le composant TAnimation dans Vista, vous devez également ajouter à votre projet le composant TShellResource sous l'onglet Win32. L'ajout de TShellResource ajoute les ressources suivantes :
    • FindFolder.res
    • FindFile.res
    • FindComputer.res
    • CopyFiles.res
    • CopyFile.res
    • RecycleFile.res
    • EmptyRecycle.res
    • DeleteFile.res
  • Si vous utilisez le BDE sur Windows Vista, vous devez reconfigurer le BDE afin qu'il ne tente pas d'écrire des fichiers dans le répertoire C:\<racine>. Pour cela, connectez-vous en tant qu'administrateur et exécutez BDEAdmin.exe, situé dans le répertoire Program Files\Fichiers communs\Borland Shared\BDE. Sous Native, cliquez sur PARADOX et modifiez NET DIR afin qu'il pointe sur un emplacement autre que le répertoire racine. La cible suggérée est C:\Users\Public\Documents\RAD STUDIO.
  • L'ordinateur peut redémarrer lorsque vous ajoutez un manifeste qui possède l'extension Windows Vista à un fichier .exe ou un fichier .dll dans Windows XP Service Pack 2 (SP2). Pour de plus amples informations sur ce problème et le hotfix, voir http://support.microsoft.com/kb/921337.
  • Si vous reconstruisez une application VCL existante incluant des composants de dialogue communs et l'exécutez sur un système Vista, elle utilise les dialogues de tâche et de fichier Vista à la place des dialogues traditionnels de message, d'enregistrement et d'ouverture. Si ce n'est pas votre souhait, définissez la variable globale UseLatestCommonDialogs sur false au début d'un programme pour imposer le comportement d'origine.
  • Pour exécuter et déboguer la VCL pour les applications Web (IntraWeb), vous devez utiliser Windows 2003 ou Windows XP. Si vous utilisez Windows Vista, vous devez désactiver le UAC (User Access Control) lors du débogage de la VCL pour les applications Web. Pour de plus amples informations sur IntraWeb, y compris l'aide de la VCL pour les composants Web, voir http://www.atozed.com/intraweb/docs/.
  • Sur Vista avec UAC activé, si le nom de fichier d'un exécutable contient "setup", "update" ou "install", vous ne pouvez pas déboguer le programme à moins que l'EDI ne soit démarré sous le compte Administrateur système. Toute tentative d'exécution de fichiers exécutables incluant ces chaînes en dehors de l'EDI déclenche un dialogue de contrôle du compte utilisateur demandant le mot de passe du compte Administrateur système. L'exécution dans l'EDI sans débogage déclenche une erreur indiquant que le programme nécessite une élévation de privilège. L'exécution dans l'EDI avec débogage déclenche une erreur de création de processus. Pour de plus amples informations, voir http://blogs.msdn.com/uac/archive/2006/01/13/512776.aspx.

Début

    Notes à propos de la ligne de commande

  • Vous pouvez maintenant construire des projets à partir de la ligne de commande à l'aide de l'exécutable MSBuild. Sélectionnez Démarrer>Tous les programmes>CodeGear RAD Studio>Invite de commande RAD Studio pour définir automatiquement le chemin de l'exécutable MSBuild et la variable d'environnement du produit. Pour de plus amples informations sur l'utilisation de MSBuild, recherchez MSBuild dans l'index ou le sommaire de l'aide en ligne.

Début

    Notes à propos des bases de données

    Mise à niveau de dbExpress pour Delphi 2007 pour Win32

Si vous avez utilisé dbExpress avec Delphi 2007 pour Win32 et effectuez la mise à niveau de votre copie de Delphi 2007 pour Win32, aucune modification de code source n'est nécessaire. En revanche, vous devez recompiler tout code utilisant l'unité SQLExpr ou DbxCommon (les deux unités ayant subi des modifications depuis la première livraison de Delphi 2007 pour Win32).

    Problèmes connus

  • Le nouveau pilote dbExpress MySQL, dbxmys30.dll, a été testé sur LibMySQL.dll à partir d'une installation serveur 5.0.xx. Si vous souhaitez utiliser dbExpress sur MySQL 4.0.xx, vous devrez mettre à niveau votre LibMySQL.dll en version 5.0.xx ou utiliser le pilote dbxmysA30.dll avec dbExpress. L'usage d'une ancienne version de LibMySQL.dll avec le pilote dbExpress pour MySQL en cours peut générer un comportement inattendu.

  • Le message d'erreur suivant est affiché lors d'une tentative de développement d'un noeud table depuis l'explorateur de données en utilisant LibMySQL.dll (version 4.x) :

    "Tentative de lecture ou d'écriture en mémoire protégée".
    Pour éviter cela, effectuez la mise à niveau de LibMySQL.dll en version 5.0.xx.
  • Les combinaisons suivantes ont été testées :

    LibMySQL.dll (4.0.XX)DBXMysA30.dllMySQL 4.0.XX Server
    LibMySQL.dll (5.0.XX)DBXMys30.dllMySQL 4.0.XX Server
    LibMySQL.dll (5.0.XX)DBXMys30.dllMySQL 4.1.XX Server
    LibMySQL.dll (5.0.XX)DBXMys30.dllMySQL 5.0.XX Server
  • Si vous voulez utiliser le pilote DBXMysA30, vous pouvez renommer DBXMys30.dll en DBXMys30.dll.bkup et DBXMysA30 en DBXMys30.dll. Vous pouvez également ajouter une nouvelle entrée au fichier dbxdrivers.ini qui définit DBXMysA30.dll en tant que LibraryName.

    Nouvelles fonctionnalités

    Framework dbExpress 4

Framework de pilote de base de données Delphi. C'est un objet orienté Framework de pilote, écrit dans Delphi.

Prise en charge des pilotes délégués. Un pilote délégué est un pilote situé entre l'application et le pilote réel. Les pilotes délégués permettent le pré et post-traitement de toutes les propriétés et méthodes du Framework dbExpress 4. Les pilotes délégués sont utiles pour le pooling de connexion, le profilage de pilote, le traçage et l'audit. Les pilotes délégués sont faciles à implémenter. Pour de plus amples informations, voir la documentation source au début de l'unité DBXCommon.

Pilote délégué TDBXPool. Fournit un pooling de connexion pour tout pilote dbExpress.

Pilote délégué TDBXTrace. Fournit des capacités de traçage améliorées. Produit du code Delphi pour toutes les propriétés et méthodes tracées.

Commandes extensibles Les commandes qui ne sont pas des instructions SQL ou des procédures stockées sont prises en charge en spécifiant une propriété "type de commande" personnalisée. Cette propriété est une chaîne permettant aux implémenteurs de pilote et de pilote délégué d'introduire leur propre espace de nommage de commandes personnalisées. Le pilote délégué TDBXPool exploite cette capacité afin d'implémenter une commande "show pools" qui renvoie un lecteur avec des informations sur l'état actuel de tous les pools de connexion.

Documentation du code source. Travaille avec l'audit d'aide pour tous les événements, propriétés et méthodes publics. La documentation XML/HTML peut également être générée à l'aide du commutateur --doc du compilateur Delphi.

Source unique. Le code source dbExpress 4 peut être compilé sur les plates-formes Win32 et .NET.

Code source dbExpress 4. Un code source complet est fourni pour le Framework dbExpress 4.

Pilotes à interfaces doubles. Tous les pilotes CodeGear dbExpress implémentent l'ancienne interface dbExpress 3 et la nouvelle interface dbExpress 4.

Pilote adaptateur dbExpress 3. La DLL dbxadapter30.dll fournit une interface dbExpress 4 pour les pilotes dbExpress 3 existants. Cela permet aux applications d'utiliser les anciens pilotes non-CodeGear dbExpress 3 avec dbExpress 4.

Exemples
  • CTS. Certification Test Suite pour le Framework dbExpress 4. C'est une suite de tests de compatibilité pilote qui fournit également de bons exemples d'utilisation directe du Framework dbExpress 4.
  • Delegates. Cet exemple démontre la facilité d'emploi et la puissance des implémentations de pilotes délégués comme TDBXTrace et TDBXPool.

    Composants VCL dbExpress à source unique

La base du code unifié est plus facile à lire, déboguer et maintenir.

VCL accède maintenant aux pilotes de base de données dbExpress à l'aide du nouveau Framework dbExpress 4.

    Nouveaux pilotes de base de données

  • MySQL 4.1 et 5.0
  • InterBase 2007

    Nouveaux pilotes de base de données Unicode

  • MySQL 4.1 et 5.0
  • InterBase 2007
  • Oracle
Notez que la prise en charge d'Unicode pour MS-SQL était déjà dans le produit.

    Pilotes Oracle dbExpress Unicode et ANSI

Les pilotes Unicode et ANSI sont livrés avec dbExpress. La version Unicode est dbxoraW30.dll et la version ANSI est dbxora30.dll.

    Notes à propos des modifications relatives aux bases de données

    dbExpress 2.5 non pris en charge

dbExpress 2.5 n'est plus pris en charge dans cette version.

    Nouveau pilote dbExpress MySQL

Le nouveau pilote MySQL est appelé dbxmys30.dll. Ce pilote prend en charge les chaînes Unicode. Ce pilote fonctionne seulement avec la version libmysql.dll de MySQL pour les serveurs MySQL 4.1 et 5.0. dbxmys30.dll ne fonctionne pas avec les anciennes versions de libmysql.dll.

L'ancien pilote MySQL est toujours inclus dans le produit, mais il a été renommé en dbxmysA30.dll. Le "A" a été ajouté au nom de la DLL pour signifier que cet ancien pilote ne prend en charge que les chaînes ASCII, et pas Unicode. dbxmysA30.dll ne peut être utilisé qu'avec les versions libmysql.dll de MySQL prenant en charge les serveurs MySQL versions 4.0 et inférieures.

     Pilotes délégués

Deux pilotes délégués sont fournis :
  • DBXTrace
  • DBXPool

    Composants VCL dbExpress

La plupart des applications ne sont pas affectées par les modifications apportées à la bibliothèque VCL dbExpress. Toutefois, des méthodes, propriétés, événements, constantes et énumérations ont été retirés ou remplacés par des fonctionnalités équivalentes. Ces modifications ont été nécessaires pour les raisons suivantes :
  • Passage à l'utilisation du Framework dbExpress 4 plus orienté Delphi au lieu des interfaces COM plus orientées C que dbExpress 3 utilisait.
  • Source unique des composants VCL dbExpress. Il existe maintenant un niveau de compatibilité élevé entre les versions native and .NET des composants VCL dbExpress.
    Problèmes de compatibilité connus :
  • L'unité dbExpress est dépréciée, vide, et donc plus nécessaire. La plupart du contenu de cette unité a été déplacé vers l'unité DBXCommon ou SQLExpr.
  • Pratiquement, toutes les classes, interfaces, énumérations, constantes qui se trouvaient dans l'unité dbExpress ont été retirées, renommées ou remplacées. Les éléments renommés et les éléments remplacés se trouvent dans la section interface de l'unité DBXCommon ou SQLExpr.
  • Les bibliothèques de pilotes statiques ne sont plus prises en charge. Ces bibliothèques statiques liées dans les unités Delphi qui permettaient aux pilotes natifs d'être liés dans un fichier exécutable Delphi ne sont plus prises en charge. Ces unités Delphi sont les suivantes : DBExpasa, DBExpDB2, DBExpInf, DBExpINT, DBExpMSS, DBExpMYS, DBExpMySQL, DBExpORA et DBExpt.

    Déploiement d'applications dbExpress pour la plate-forme Win32

    Utilisation des packages

Projet|Options|Packages doit avoir l'option Construire avec les packages d'exécution cochée. DbxCommonDriver100.bpl doit être déployé avec votre application. Comme avec les versions précédentes, si votre application utilise un des pilotes dbExpress dynalink DBX*.dll, ils doivent également être déployés.

    Compatibilité d'interface des unités

En grande partie, le produit maintient la compatibilité d'interface des unités avec BDS2006. En revanche, la VCL dbExpress ne respecte pas cette compatibilité dans les trois unités : SQLExpr, DBXpress et SQLConst. Seule l'unité SQLExpr contient des composants. DBXpress a été déprécié. Pour éviter des conflits avec la version BDS2006 de dbExpress100.bpl, dbExpress100.bpl a temporairement été renommé en dbExpress4100.bpl. Le "4" signifie que cette version du package dbExpress est pour la version 4 des pilotes dbExpress. Dès réception de la version 11.0 de la VCL, la convention de nommage VCL normale sera reprise et dbExpress4100.bpl sera renommé en dbExpress110.bpl.

    Serveurs pris en charge

    dbExpress

  • InterBase 7.5.1, 2007, 6.5*, 7.0*, 7.1* (Tous) (Pilote dbxINT30.dll, Client GDS32.DLL)
  • Oracle 10g, 9.1.0*, 9.2.0* (Ent) (Pilote dbxora30.dll, Pilote dbxoraW30.dll, Client OCI.DLL)
  • DB2 UDB 8.x, 7.x* (Ent) (Pilote dbxDB230.dll, Client db2cli.dll)
  • MSSQL 2000, 2005 (Ent) (Pilote dbxMSS30.dll, Client oledb.dll)
  • Informix 9.x (Ent) (Pilote dbxINF30.dll, Client isqlb09a.dll)
  • Adaptive Sybase Anywhere 9, 8* (Ent) (Pilote dbxASA30.dll, Client dbodbc9.dll)
  • Sybase 12.5 (Ent) (Pilote dbxASE30.dll, Client libct.dll & libcs.dll)
  • MySQL 5.0.27, 4.1.22* (Tous) (Pilote dbxMYS30.dll, Client libmysql.dll)
  • MySQL 4.0.24 (Tous) (Pilote dbxMYSA30.dll, Client libmysql.dll)
  • Remarque : Pas de changement depuis dbxMYS30.dll de Delphi2006. Il est renommé.

* Le pilote n'est pas totalement certifié pour cette version de la base de données.

Début

    Notes à propos du débogueur

  • La tentative de placer dans le code un point d'arrêt de données risque de fausser le déroulement du programme. Par exemple, placer un point d'arrêt de données sur un slot VMT risque de faire aller le programme à un emplacement incorrect (le "dernier" octet de l'adresse est écrasé par 0xcc).
  • L'installation de System Mechanic 7 Pro désactive la fonctionnalité du débogueur intégré. Le comportement observé est la terminaison immédiate du processus et un message de diagnostic dans la vue Journal d'événements. Si le produit est installé, la fonctionnalité de débogage peut être rétablie en désactivant l'exécution du service "iolo DMV" via le gestionnaire de services.

Début

    Notes à propos de la documentation

  • Si vous rencontrez des erreurs de package et que l'aide en ligne de l'EDI ne fonctionne pas, le problème peut provenir d'une installation incomplète du .NET 2.0 Framework SDK. L'afficheur d'aide utilisé par les produits fait partie du .NET 2.0 Framework SDK. Quand .NET Framework est explicitement installé, vous devez cocher les trois options disponibles (y compris Documentation du produit).

    Pour remédier à ce problème :
    1. Désinstallez .NET Framework SDK, situé dans le dossier C:\Program Files\Microsoft.NET\SDK.
    2. Désinstallez le produit.
    3. Redémarrez votre système.
    4. Réinstallez le produit. Cette étape installe également le .NET 2.0 Framework SDK avec tous les pré-requis.
  • Lors du premier appui sur F1 pour obtenir de l'aide, il est possible qu'une boîte de dialogue vous invite à choisir entre l'utilisation de l'aide en ligne comme source principale, l'utilisation de l'aide locale comme source principale et pas d'utilisation de l'aide en ligne. Sélectionnez la seconde option, "Utiliser l'aide locale comme source principale" pour permettre au navigateur de trouver les fichiers d'aide adéquats.

Début

    Notes pour l'international

  • Les points d'arrêt ne sont pas reconnus et sont marqués comme étant "incorrects" si un nom de fichier source contenant des caractères n'appartenant pas à l'alphabet romain est placé dans le chemin du projet.
  • Si vous utilisez un éditeur de méthodes de saisie (IME), une erreur sporadique causée par un bogue de .NET Framework peut entraîner une longue attente (environ 5 minutes) suivie d'un message d'erreur. Après deux ou trois occurrences, cette erreur semble ne plus se produire. Toutes les fenêtres de langues peuvent théoriquement être affectées.

    Pour éviter cette erreur, créez ou mettez à jour l'entrée de registre suivante :

    HKEY_CURRENT_USER\Console\LoadConIme

    Cette entrée est de type REG_DWORD et vous devez définir sa valeur sur 0.

Début

    Notes Together

  • Dans C++Builder 2007, l'outil de modélisation intégré Together prend seulement en charge la modélisation en lecture seule, c'est-à-dire la visualisation du code sans génération de code. Dans Delphi 2007 pour Win32, Together prend en charge l'ensemble complet des fonctionnalités de modélisation décrites dans l'aide en ligne.
  • Si la visualisation du code Together ne fonctionne pas pour votre projet C++, utilisez le gestionnaire de projets pour ajouter les fichiers en-tête (.h ou .hpp) à votre projet. Cela rend les informations disponibles aux outils de modélisation Together.
  • Après le retrait du support Together d'un projet, il n'est pas possible de retirer du gestionnaire de projet les fichiers de support des diagrammes. Pour retirer ces fichiers, sélectionnez l'option du menu principal de l'EDI Projet | Retirer du projet. Les éléments affichés dans la liste sont les fichiers de support des diagrammes. Vous pouvez en sélectionner plusieurs et les retirer.
  • Si le support de la modélisation est désactivé quand vous sélectionnez les refactorings Together, un message vous demande si vous voulez activer le support de la modélisation pour le projet. Vous devez répondre "Oui" à ce message pour utiliser les refactorings Together.

Début

    Notes VCL/RTL

  • Trois nouveaux dialogues VCL ont été ajoutés pour Windows Vista :
    • TCustomFileOpenDialog
    • TCustomFileSaveDialog
    • TTaskDialog
    Ces composants sont tous les wrappers des dialogues Windows Vista. Si la variable globale UseLatestCommonDialogs est définie sur true, les dialogues Vista sont automatiquement utilisés sur les systèmes Vista.
  • Une nouvelle propriété a été ajoutée à TApplication, MainFormOnTaskBar. Elle est définie par défaut sur True pour les nouvelles applications et sur False pour les applications existantes. La propriété contrôle comment les boutons de la barre des tâches de la fenêtre sont gérés par la VCL. Cette propriété peut s'appliquer à d'anciennes applications, mais elle affecte l'ordre Z de votre fiche principale (MainForm). Assurez-vous donc qu'il n'existe pas de dépendances sur l'ancien comportement. MainFormOnTaskBar a été conçue pour être définie au démarrage et persister pendant la durée de l'application. La modification de cette propriété à l'exécution peut générer un comportement inattendu. La principale raison de ce changement était de mieux supporter plusieurs nouvelles fonctionnalités disponibles sur Windows Vista.

Début

    Serveur SOAP

L'application Delphi SOAP Server avec la classe Web App Debugger ne compile pas. Il existe deux solutions possibles :

  • Inclure $(BDS)\Lib\Indy9 dans le chemin de bibliothèque et retirer $(BDS)\Lib\Indy10. En revanche, cela signifie que votre application doit utiliser Indy 9.
  • Compiler IndySockTransport et sockapp, et les placer dans $(BDS)\Lib\Indy10.

Début

Copyright 2007 CodeGear Software. Tous droits réservés.




Server Response from: ETNASC04