IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject'


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject'
    Bonsoir,
    Je finalise la migration d'un programme sous Windows 10, anciennement BDE/Paradox vers FireDac/SQLite et, à la compilation (CTRL-F9) avec Delphi 10.3.3, je rencontre l'erreur suivante :

    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Borland.Studio.Interop.IInteropMessageService'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{FF877130-F96F-3885-9A3E-3093A3C1D831}' a échoué en raison de l'erreur suivante : Erreur lors du chargement de la bibliothèque/DLL du type. (Exception de HRESULT : 0x80029C4A (TYPE_E_CANTLOADLIBRARY))

    J'avoue être perdu par le contenu du message.

    Le FireDacPhysLink.VendorLib avec le répertoire où se situe la DLL (le répertoire où se trouvent les .pas et. dfm, c'est aussi le répertoire de sortie) et le test du FDConnection est bon. Par contre au lancement du RADStudio, j'ai pratiquement toujours une erreur de handle de fenêtre mais à l'affichage et à l'éxécution sous l'IDE (F9) tout est normal.

    Ce qui me paraît bizarre, c'est que, sous l'IDE l'erreur n'apparaît pas lors de l'appui sur "Executer" F9, cela compile normalement, l'application se lance et s'exécute correctement, mais impossible de compiler avec CTRL-F9... Je reçois toujours le même message. Par contre, alors qu'avec F9 la fenêtre de compilation s'ouvre au milieu de l'écran, systématiquement lorsque je reçois l'erreur d'impossibilité de cast, la fenêtre se trouve en bas à droite de l'écran, ce qui fait qu'avant même le résultat de la compilation, je sais que cela n'aboutira pas.

    Mes dernières modifications concernent l'introduction de valeurs par défaut dans chacun des FQuery de l'applicatif et l'ajout d'une fiche pour la lecture d'informations (une fiche avec 2 dBGrid et 2 dBNavigator), donc pas de modification de données.

    Comme lu sur internet, j'ai essayé en fermant le RadStudio et en relançant le programme, en redémarrant le PC, toujours la même chose, même message d'erreur.

    Suis preneur de toute suggestion.

    Bien cordialement,

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 935
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    En qwantant le GUIID s'est peut-être révélée une piste ici.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre chevronné Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Par défaut
    Citation Envoyé par essence-ciel Voir le message
    Ce qui me paraît bizarre, c'est que, sous l'IDE l'erreur n'apparaît pas lors de l'appui sur "Executer" F9, cela compile normalement, l'application se lance et s'exécute correctement, mais impossible de compiler avec CTRL-F9... Je reçois toujours le même message. Par contre, alors qu'avec F9 la fenêtre de compilation s'ouvre au milieu de l'écran, systématiquement lorsque je reçois l'erreur d'impossibilité de cast, la fenêtre se trouve en bas à droite de l'écran, ce qui fait qu'avant même le résultat de la compilation, je sais que cela n'aboutira pas.

    Attention, avec F9 tu exécutes le programme, tu ne le compiles pas. Tu ne fais que lancer en debug un exe que tu avais déjà compilé auparavant. Pour t'en rendre compte, tu peux renommer ton exe, et appuyer sur F9. JE pense que l'IDE te dira qu'il ne trouve pas l'exe.

    Par contre, avec Ctrl+F9 tu compiles programme.

    Si ça ce trouve, depuis le début de tes modifications, tu lances un exe que tu n'as jamais compilé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObjet'
    Bonjour Blonde,
    Merci pour ta réponse.

    J'ai suivi le lien indiqué pour l'erreur indiquée et ai testé tregsvr -t Borland.Studio.ToolsAPI.tlb et tregsvr -t Borland.Studio.Interop.tlb dans le répertoire c:\program files (x86)\Studio\20.0\bin, j'obtiens :

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C:\Program Files (x86)\Embarcadero\Studio\20.0\bin>tregsvr -t Borland.Studio.ToolsAPI.tlb
    Embarcadero Turbo Register Server(32) -- COM Server Registration utility.
    Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.
    
    Type library name: C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\Borland.Studio.ToolsAPI.tlb
    Type library GUID: {718062B4-5EB5-4171-AB94-80108322C37E}
    
    Error: Erreur d'accSs du Registre OLE

    pour l'un et

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C:\Program Files (x86)\Embarcadero\Studio\20.0\bin>tregsvr -t Borland.Studio.ToolsAPI.tlb
    Embarcadero Turbo Register Server(32) -- COM Server Registration utility.
    Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.
    
    Type library name: C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\Borland.Studio.ToolsAPI.tlb
    Type library GUID: {718062B4-5EB5-4171-AB94-80108322C37E}
    
    Error: Erreur d'accSs du Registre OLE

    pour l'autre.

    J'ai quand même recherché dans le regedit si l'IID FF877130-F96F-3885-9A3E-3093A3C1D831 était répertoriée, elle existe bien mais renvoie à une autre clé {00020424-0000-0000-C000-000000000046}...

    Une recherche des .tlb sur mon PC ne me donne aucun résultat. Par contre la recherche ToolsApi me donne un répertoire vide. Serait-ce un problème d'installation ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 635
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    c'est peut-être une erreur dans le registre windows (c'est souvent le foutoir là dedans) ? Un bon nettoyage (i.e avec ccleaner) du registre pourrait, peut-être, être une solution
    il y a très longtemps, pour BDS2006
    Citation Envoyé par https://support.embarcadero.com/article/35903
    One way is to open the Registry Editor and search the Registry for each CLSID. That will reveal which .tlb files are involved. After you know this, go to the C:\Program Files\Borland\BDS\4.0\Bin directory and run "regasm" on the corresponding .dll file. For instance, if you search the Registry and find that a CLSID is associated with Borland.Studio.Interop.tlb, then go to the BDS 2006 \Bin directory on the command line and issue the "regasm Borland.Studio.Interop.dll" command.
    Sinon, as-tu essayé de lancer l'IDE en mode administrateur ?

    Et enfin serait-il possible que ce soit un problème de déboggueur ?
    Subséquement à cette dernière interrogation la cible de la compilation est (et SQLite tant qu'à faire) 32 ou 64 bits

  6. #6
    Membre chevronné Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Par défaut
    Quelle est l'erreur pour "tregsvr -t Borland.Studio.Interop.tlb" ? Tu as recopié celle pour ToolsAPI 2 fois, du coup on ne voit pas ta 2ème erreur.

    As-tu essayé de "derecenceser" avant de recenser ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Phyto-aromathérapeute
    Inscrit en
    Juillet 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Phyto-aromathérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2012
    Messages : 83
    Par défaut Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject'
    Bonjour,
    Merci à tous pour vos réponses.

    Peut-être à tort, je lance toujours l'IDE en tant qu'administrateur pour programmer.

    Ayant un peu regardé la base de registre (voir mon message précédent), c'était effectivement un immense bazar...

    Ensuite, j'ai nettoyé la base de registre avec Ccleaner, depuis le problème semble résolu, cela compile (F9) et me donne l'exe sans problème.

    Je marque la discussion comme close. Encore merci à tous et bon bout d'an.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible d'effectuer un cast d'un objet COM
    Par lazerbo dans le forum Développement Windows
    Réponses: 1
    Dernier message: 27/07/2016, 10h13
  2. Réponses: 21
    Dernier message: 16/09/2013, 22h00
  3. Réponses: 7
    Dernier message: 26/04/2011, 18h00
  4. Réponses: 0
    Dernier message: 13/03/2010, 10h25
  5. Réponses: 2
    Dernier message: 06/03/2007, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo